php - 当对两列使用 mysqli_multi_query 时,排序无法正常工作

标签 php mysql mysqli

我的代码是:

$query = "SELECT * FROM  `chat` 
          WHERE fromthe =  '$email' and tothe='theadmin' order by id desc;";
$query .= "SELECT * FROM  `chat` 
          WHERE fromthe =  'theadmin' and tothe='$email' order by id desc";
mysqli_multi_query($con, $query);

使用此查询时,我得到了结果,但我的概念不起作用。

这个概念是:
这是在 php 服务器上的聊天应用程序中使用的,我使用此查询来获取客户端和管理员之间的消息。我必须按降序排列此结果的 id

我看到的结果是:
它使用其 id 订购管理员消息,并使用其 id 订购客户端消息。我希望将 id 排序为两个结果的降序排列。

最佳答案

您可能需要一个基于 UNION ALL 的单个查询

$query = "SELECT * FROM  `chat` 
      WHERE fromthe =  '$email' and tothe='theadmin' 
      UNION ALL 
      SELECT * FROM  `chat` 
      WHERE fromthe =  'theadmin' and tothe='$email' order by id desc";

无论如何,您应该避免在 sql 中使用 php var(您面临 SQLinjection 的风险)..您应该查看准备好的语句和绑定(bind)参数

关于php - 当对两列使用 mysqli_multi_query 时,排序无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590588/

相关文章:

php - 如何通过mysql查询获取表结构及其数据?

php - 如何将查询分解为更小的查询

php - 整个站点在 IE 6、7、8 中根本无法加载,在 9 中出现 CSS 问题

mysql - 无法建立远程mysql连接

php - 如何加入多个查询

php - 什么时候使用/不使用准备好的语句?

php - Mysql 将 2 个查询合二为一

php - 简单的 htaccess 重写规则错误 404

mysql - mysql如何处理sql语句中的十六进制

mysql - 关于mysql INNER JOIN的问题