我在数据库表上运行以下查询
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=1 或 from_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/