Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php从ID数组中选择多行_Php_Mysql - Fatal编程技术网

php从ID数组中选择多行

php从ID数组中选择多行,php,mysql,Php,Mysql,对于mysql表,我有10行,其中5行(一半)有post\u id的5,而其他5行有post\u id的234 我想根据日期从每个帖子id中选择两行: 这就是我目前所拥有的 $post_ids = $_POST['id'][0]; $ids = implode(',', $post_ids); //id's in ',' format $query = "SELECT * FROM $table WHERE post_id in ({$ids}) ORDER by dat

对于mysql表,我有10行,其中5行(一半)有
post\u id
5
,而其他5行有
post\u id
234

我想根据日期从每个帖子id中选择两行:

这就是我目前所拥有的

 $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
函数?还有别的方法吗


谢谢

您可以使用
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 )";

是的,将您的查询放入foreach循环,该循环获取数据库的所有记录,然后将查询放入循环中谢谢您的帮助。看来这是最简单的方法了。谢谢我不太明白,但你考虑过了吗。我有两个ID,其中每个ID有多行。(例如,id(5)=第1行、第2行、第3行、第4行等)。我试图选择总共4行(两行来自id=5,两行来自id=234)。是否可以通过示例向我展示组?:)这正是我之前评论中的链接所做的事情。请检查一下