我对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>";
}
答案 0 :(得分:3)
类似
select distinct category, video_id from table_name order by id DESC
如果您在数据库中有6个类别,那么您将获得6行,这些行在其类别中具有最高的ID
答案 1 :(得分:2)
请分享您的表格结构。不过,我认为以下查询应该可以解决问题:
SELECT category_id, MAX(movie_id) most_recent_movie_for_category FROM movies GROUP BY category_id
答案 2 :(得分:1)
您有两种选择:
SELECT ... FROM ... WHERE ... UNION SELECT ... FROM ... WHERE ...
等)如果您有任何疑问,请与我们联系。我相信没有你的数据库结构,你很难帮助你。
答案 3 :(得分:1)
感谢您发布表格结构。这只是一个简单的GROUP BY
,在video_id上有一个MAX
聚合。
SELECT video_category, MAX(video_id) AS video_id FROM videos GROUP BY video_category;