Php 按日期时间组织MySQL结果
使用PHP,我试图找到一种方法来组合多个MySQL查询的结果,并将它们放入一个按日期时间戳排序的数组中,该数组在数据库中保存在“timestamp”下 我的代码:Php 按日期时间组织MySQL结果,php,mysql,datetime,Php,Mysql,Datetime,使用PHP,我试图找到一种方法来组合多个MySQL查询的结果,并将它们放入一个按日期时间戳排序的数组中,该数组在数据库中保存在“timestamp”下 我的代码: $reactions = DB::query('SELECT * FROM reactions WHERE poster_id=:userid', array(':userid' => $userid)); $comments = DB::query('SELECT * FROM comments
$reactions = DB::query('SELECT * FROM reactions WHERE poster_id=:userid', array(':userid' => $userid));
$comments = DB::query('SELECT * FROM comments WHERE poster_id=:userid', array(':userid' => $userid));
$mentions = DB::query('SELECT * FROM comments WHERE FIND_IN_SET(:users , users)', array(':users' => $userid));
$postMentions = DB::query('SELECT * FROM posts WHERE FIND_IN_SET(:users , users)', array(':users' => $userid));
编辑:
更新代码
$reactions = "'SELECT timestamp as date FROM reactions WHERE poster_id=:userid', array(':userid' => $userid)";
$comments = "'SELECT timestamp as date FROM comments WHERE poster_id=:userid', array(':userid' => $userid)";
$mentions = "'SELECT timestamp as date FROM comments WHERE FIND_IN_SET(:users , users)', array(':users' => $userid)";
$postMentions = "'SELECT timestamp as date FROM posts WHERE FIND_IN_SET(:users , users)', array(':users' => $userid)";
$sql = 'SELECT timestamp FROM ('.$reactions.' UNION ALL '.$comments.' UNION ALL '.$mentions.' UNION ALL '.$postMentions.') as combined order by timestamp desc';
$result = DB::query($sql, array());
print_r($result);
你们可以通过联合来实现同样的目标。请尝试下面的代码片段
$reactions = 'SELECT reactions.date as date FROM reactions WHERE poster_id=:userid', array(':userid' => $userid);
$comments = 'SELECT comments.date as date FROM comments WHERE poster_id=:userid', array(':userid' => $userid);
$mentions = 'SELECT comments.date as date FROM comments WHERE FIND_IN_SET(:users , users)', array(':users' => $userid);
$postMentions = 'SELECT posts.date as date FROM posts WHERE FIND_IN_SET(:users , users)', array(':users' => $userid);
$sql = SELECT combined.date from (".$reactions." UNION ALL ".$comments." UNION ALL ".$mentions." UNION ALL ".$postMentions.") as combined order by combined.date desc;
你在mysql中尝试过“联合”吗?@KimberleeHo-no,我从来没有听说过。我该如何在代码中实现这一点?我正在使用DB类中的查询。另外,我不使用combined.date或其中任何一个,它们是必需的吗?添加这一行
$result=DB::query($sql)代码>这应该执行您的查询…这里的组合是一个表别名。我尝试实现它,但它给了页面一个“HTTP错误500”,我将更新的代码编辑到了主问题中。