搜尋

首頁  >  問答  >  主體

想要使用 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粉007288593479 天前617

全部回覆(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
  • 取消回覆