搜索

首页  >  问答  >  正文

想要使用 sql 和 php 仅显示所选值的行

<p>我有 40 个提供商和 10,000 个产品,但我想显示每个提供商的 1 个产品</p> <table class="s-table"> <thead> <tr> <th>品牌</th> <th>提供商</th> <th>产品</th> <th>网址</th> </tr> </thead> <tbody> <tr> <td>闪电</td> <td>务实的游戏</td> <td>命运夫人</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>Isoftbet</td> <td>万圣节杰克</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>务实的游戏</td> <td>甜蜜的富矿</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>Isoftbet</td> <td>热带保安</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>网络</td> <td>皇家马铃薯</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>网络</td> <td>命运夫人</td> <td>链接</td> </tr> </tbody> </table> <p>这就是我现在的 SQL 表。但我想显示每个提供商的 1 项,例如:</p> <table class="s-table"> <thead> <tr> <th>品牌</th> <th>提供商</th> <th>产品</th> <th>网址</th> </tr> </thead> <tbody> <tr> <td>闪电</td> <td>务实的游戏</td> <td>命运夫人</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>Isoftbet</td> <td>万圣节杰克</td> <td>链接</td> </tr> <tr> <td>闪电</td> <td>网络</td> <td>皇家马铃薯</td> <td>链接</td> </tr> </tbody> </table> <p>这是我的代码 `</p> <pre class="brush:php;toolbar:false;"><?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()); }// 尝试执行选择查询 $sql = "SELECT * FROM 表名 WHERE Brand='Coolcasino' and Provider IN ('Pragmatic Play','Isoftbet','Netent') ;"; if($结果 = mysqli_query($link, $sql)){ 如果(mysqli_num_rows($结果)> 0){ echo "<表>"; 回声“”; echo“第<品牌>”; echo“第<提供者>”; echo“第<产品>”; echo“第URL”; 回声“”; while($row = mysqli_fetch_array($result)){ 回声“”; 回显“” 。 $row['品牌'] 。 “</td>”; 回显“” 。 $row['提供商'] 。 “</td>”; 回显“” 。 $row['产品'] 。 “</td>”; 回显“” 。 $row['URL'] 。 “</td>”; 回声“”; } 回显“”; // 关闭结果集 mysqli_free_result($结果); } 别的{ echo“没有找到与您的查询匹配的记录。”; } } 别的{ echo“错误:无法执行$sql。 ” 。 mysqli_error($link); } // 关闭连接 mysqli_close($link); ?></pre> <p>如果有人可以的话请帮助我`</p>
P粉007288593P粉007288593497 天前635

全部回复(2)我来回复

  • P粉939473759

    P粉9394737592023-09-03 12:39:23

    将您的查询替换为

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

    回复
    0
  • P粉317679342

    P粉3176793422023-09-03 09:21:49

    使用行号:

    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 * ,仅选择您真正需要的列

    回复
    0
  • 取消回复