从ID数组中选择多个行的PHP

3
对于mysql表格,我有10行数据,其中5行的post_id5,另外5行的post_id234
我想要根据日期从每个post_id中选择2行数据:
这是目前我的进展:
 $post_ids = $_POST['id'][0];
 $ids      = implode(',', $post_ids); //id's in ',' format

 $query    = "SELECT * FROM $table WHERE post_id in ({$ids}) ORDER by date desc limit 2";   

这只返回匹配两个 ID 之一的前两个结果。我需要为每个查询运行 foreach 函数吗?是否有其他方法?

谢谢!


1
是的,将您的查询放入foreach循环中,该循环会获取数据库的所有记录,然后将查询放入循环内部。 - Manthan Dave
谢谢你的帮助。看起来这是最简单的方法。谢谢! - Steve Kim
不是很理解,但你考虑过GROUP BY吗?(链接:https://dev.mysql.com/doc/refman/5.5/en/group-by-handling.html) - bansi
嗨。我有两个ID,每个ID都有多行数据。(例如,id(5)=行1,行2,行3,行4等)。我正在尝试选择总共4行(其中两行来自id = 5,另外两行来自id = 234)。能否给我展示GROUP BY的示例? :) - Steve Kim
那就是我之前评论中链接所做的确切事情。请检查一下。 - bansi
我会去看看其他的帖子。谢谢! - Steve Kim
1个回答

3
您可以使用UNION ALL来完成这项任务。尝试这样做:
$query = "( select * from $table where post_id = $ids[0] order by date desc LIMIT 1 ) UNION ALL ( select * from $table where post_id = $ids[1] order by age desc LIMIT 1 )";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接