簡體   English   中英

MySQL和PHP-選擇6行,每行都有不同的“ WHERE”子句

[英]MySQL & PHP - Select 6 rows, each with a different 'WHERE' clause

我對MySQL相當滿意,但這是我從未做過的事情。 我想做的是使一個SQL代碼選擇6行,每行都有自己的WHERE子句。

我想做的是得到6行,每行將是發布的最新“視頻”。 有6個類別,所以這就是為什么我有6行。 我希望它通過它的“ id”號拉最新的。

我會使用6個不同的SQL查詢來執行此操作,但我認為這樣做會比較慢(除非這是執行此操作的唯一方法?)

布局

從這個小片段中,我想得出的最終結果是:

2-> 21

6-> 16

8-> 14(因為最大,所以選擇14。)


最終工作守則

$sql="SELECT video_category, MAX(video_id) AS video_id FROM videos GROUP BY video_category";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)) {
echo $rows['video_category'] . " --> " . $rows['video_id'] . "<br>";
}

就像是

select distinct category, video_id from table_name order by id DESC

如果數據庫中有6個類別,則將獲得6行,這些行在其類別中的ID最高

請分享您的表格結構。 不過,我認為以下查詢應該可以解決問題:

SELECT category_id, MAX(movie_id) most_recent_movie_for_category FROM movies GROUP BY category_id

您有兩種選擇:

  1. 確定將產生所需結果的通用WHERE子句。
  2. (可能是首選)進行一些涉及UNION的查詢( SELECT ... FROM ... WHERE ... UNION SELECT ... FROM ... WHERE ...等)

如果您有任何疑問,請告訴我。 我相信,如果沒有數據庫結構,將很難為您提供更多幫助。

感謝您發布表格結構。 這只是一個簡單的GROUP BY ,在video_id上具有MAX匯總。

SELECT video_category, MAX(video_id) AS video_id FROM videos GROUP BY video_category;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM