想要使用 sql 和 php 僅顯示所選值的行
P粉007288593
P粉007288593 2023-09-02 15:25:33
0
2
535
<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粉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 * ,只選擇您真正需要的列

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!