这是我正在编写的应用程序的消息模块中的剥离表。
当我运行以下命令时,它按预期运行
SELECT * FROM
messages
WHERE to_user = 1 OR from_user = 1 GROUP BY from_user
返回
戏剧性的是我只想拥有 2 | 的一个实例1 或 1 | 2 ,因为在我的应用程序中,我试图根据发送消息的用户名对消息进行分组。我尝试不使用 OR 子句,但是当 1 向 2 发送消息时,消息不会出现,直到他收到 2 的回复。 1 和 2 是来自 php 变量的动态
最佳答案
由于您按用户名分组,我会选择一个有效的用户 ID 列表:
SELECT DISTINCT from_user FROM messages WHERE to_user = 1
UNION
SELECT DISTINCT to_user FROM messages WHERE from_user = 1
如果您不介意重复,UNION ALL
并删除 DISTINCT
将提高性能。
关于MySQL从一组中提取相似数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12431949/