【问题标题】:php selecting multiple rows from array of ids [duplicate]php从id数组中选择多行[重复]
【发布时间】:2017-03-24 01:24:27
【问题描述】:

对于mysql表,我有10行,其中5行(一半)有5post_id,而其他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 函数吗?还有其他方法吗?

谢谢!

【问题讨论】:

  • 是的,将您的查询放入 foreach 循环中,该循环会获取数据库的所有记录,然后将查询放入循环中
  • 感谢您的帮助。看起来这是最简单的方法。谢谢!
  • 没看明白,但是你考虑过GROUP BY
  • 嗨。我有两个 id,其中每个 id 都有多行。 (例如,id (5) = 第 1 行、第 2 行、第 3 行、第 4 行等)。我正在尝试选择总共 4 行(两个来自 id = 5 和 2 个来自 id = 234)。愿意向我展示 GROUP BY 示例吗? :)
  • 这正是我之前评论中的链接所做的事情。请检查

标签: php mysql


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-07-17
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多