[英]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
您有兩種選擇:
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.