想要使用 sql 和 php 仅显示所选值的行
P粉007288593
P粉007288593 2023-09-02 15:25:33
[PHP讨论组]

我有 40 个提供商和 10,000 个产品,但我想显示每个提供商的 1 个产品

品牌 提供商 产品 网址
闪电 务实的游戏 命运夫人 链接
闪电 Isoftbet 万圣节杰克 链接
闪电 务实的游戏 甜蜜的富矿 链接
闪电 Isoftbet 热带保安 链接
闪电 网络 皇家马铃薯 链接
闪电 网络 命运夫人 链接

这就是我现在的 SQL 表。但我想显示每个提供商的 1 项,例如:

品牌 提供商 产品 网址
闪电 务实的游戏 命运夫人 链接
闪电 Isoftbet 万圣节杰克 链接
闪电 网络 皇家马铃薯 链接

这是我的代码 `

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "newuser1", "p,+Dn@auTD3$*G5", "newdatabse");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

// Attempt select query execution
$sql = "SELECT * FROM tablename WHERE Brand='Coolcasino' and Provider IN ('Pragmatic Play','Isoftbet','Netent') ;";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>Brand</th>";
                echo "<th>Provider</th>";
                echo "<th>Product</th>";
                echo "<th>URL</th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['Brand'] . "</td>";
                echo "<td>" . $row['Provider'] . "</td>";
                echo "<td>" . $row['Product'] . "</td>";
                echo "<td>" . $row['URL'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Close result set
        mysqli_free_result($result);
    } else{
        echo "No records matching your query were found.";
    }
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>

如果有人可以的话请帮助我`

P粉007288593
P粉007288593

全部回复(2)
P粉939473759

将您的查询替换为

$sql = "SELECT * FROM tablename WHERE Brand='Coolcasino' and Provider IN ('Pragmatic Play','Isoftbet','Netent') GROUP BY  Provider;";
P粉317679342

使用行号:

select Brand,
       Provider,
       Product,
       URL
from (   select Brand,
                Provider,
                Product,
                URL,
                row_number() over(partition by Provider order by rand()) as row_num
         from tablename
         where Brand='Lightning' 
         and Provider IN ('Pragmatic Play','Isoftbet','Netent') 
      ) as rand_prod
where row_num=1;

https://dbfiddle.uk/BGzx6cYY

注意,我建议不要使用 select * ,仅选择您真正需要的列

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号