假设您有MySQL Database Schema
from_id
和to_id
,两者都代表数字用户ID
。上下文是基于文本的对话,类似于聊天。
query
database
关于选择user 1
与他/她与之对话的所有其他用户之间交换的所有最后消息的列表的问题{{1}}。
答案 0 :(得分:0)
如果您需要1个用户:
SELECT * FROM TABLENAME
WHERE from_id = USERID1 OR to_id = USERID1
ORDER BY `timestamp` DESC
LIMIT 1
此处timestamp
- 您的时间戳字段。
并且适用于所有用户:
select text, id, ts
from (select text, from_id as id,ts from chat union select text, to_id as id,ts from chat) T
group by id
having ts=max(ts)
这里ts - 时间戳
答案 1 :(得分:0)
SELECT * FROM TABLENAME WHERE from_id = USERID1 OR to_id = USERID1
您需要将所需的列替换为“*”以获得更好的性能。
如果您有日期时间字段,则可以按此搜索。