MySQL 查询 OR 仅返回数据子集?

标签 mysql sql

我在数据库表上运行以下查询

SELECT *, CONVERT_TZ(`received_on`, '+00:00','+05:30') AS received_on 
FROM `user_chat_msgs` 
WHERE (`from_user`='54610' AND `to_user`='1') 
OR (`to_user`='1' AND `from_user`='54610') 
ORDER BY id DESC 
LIMIT 10000; 

这仅返回诸如

之类的消息

from_user= 54610 和 to_user=1

预期结果

from_user= 54610 和 to_user=1from_user= 1 和 to_user=54610

逻辑查询对我来说听起来是正确的,但我不确定这里的问题是什么?

最佳答案

然后使用适当的 where 子句:

SELECT *, CONVERT_TZ(`received_on`, '+00:00','+05:30') AS received_on
FROM `user_chat_msgs`
WHERE (`from_user` = '54610' AND `to_user` = '1') OR
      (`from_user` = '1' AND `to_user` = '54610')
ORDER BY id DESC
LIMIT 10000; 

您的 where 子句:

WHERE (`from_user` = '54610' AND `to_user` = '1') OR
      (`to_user` = '1' AND `from_user` = '54610') 

简单地重复这两个条件,但顺序不同。

注意:如果用户 ID 是数字,则不要在常量周围使用引号。

关于MySQL 查询 OR 仅返回数据子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32351844/

相关文章:

mysql - 存储过程 CONCAT() 错误代码 1054,未知列

php - 从表 A 的按钮行中收集一行表 B

sql - 好友关系查询

sql - 有没有一种方法可以在Oracle 10g中的数据库之间复制BLOB记录?

sql - SQLite3 在 Node.js 中有准备好的语句吗?

PHP/SQL JOIN 2 个表并获得平均分

mysql - 在连接两个大表时优化 ORDER BY

mysql在字符串中查找单词并按 "most matches"排序

sql - 按邮政编码邻近度搜索 - MySql

mysql - 什么是独立于数据库(适用于 mysql 和 sqlite3)的解决方案来计算 SQL 中两个日期之间的天数?