php从ids数组中选择多行

标签 php mysql

<分区>

对于 mysql 表,我有 10 行,其中 5(一半)行的 post_id5,而其他 5 行的 post_id 234

我想根据日期从每个 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 函数?还有其他方法吗?

谢谢!

最佳答案

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

关于php从ids数组中选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40520443/

相关文章:

php - 根据列中的数据分离 MySQL SELECT 语句

javascript - 如何在 Yii 中重构 AJAX 流程

php - 静态数组中的静态变量

LIKE '%%' 的 Mysql 性能

mysql - 加密 key 管理软件和透明数据加密MySQL

php连接到mysql复制

MySQL 从小时 :minute format 获取日期

php - 在使用 PHP Simple HTML DOM Parser 之前登录到 ASP 网站

php - 如何在codeigniter中的两个不同表中插入和更新值

php - 如何部署Docker化的php应用程序