我有以下数据:
me = my_userid;
表:消息
message_id | message_from | message_to
1 |我|用户
2 |用户|我
运行查询给出两行(SELECT DISTINCT message_from,message_to FROM Message WHERE message_from ='“+ me +”'OR message_to ='“+ me +”'“);
使用OR因为我的id可以来自(发送时)或TO(当其他用户向我发送消息时)
- 这会返回两行,但我希望它返回一行,因为如果切换到 - 从中获得相同的ID,那么如何在查询中完成此操作。感谢
答案 0 :(得分:1)
您可以将min()
和max()
用作标量功能:
select distinct min(message_from, message_to) as m1, max(message_from, message_to) as m2
from message
where message_from ='"+me+"' OR message_to ='"+me+"'"
这些等同于其他数据库中的least()
和greatest()
。