我使用两列userfrom
和userto
在mysql中对行进行分组。我必须在a和b之间只选择一条会话消息。下面的查询完全符合我的要求,但是我想将它部署到android sqlite查询中,但是sqlite只接受CASE Condition函数。
SELECT * FROM messeages WHERE userfrom='a' OR userto='a'
group by
IF(userfrom > userto, userfrom,userto),
IF(userfrom > userto, userto,userfrom)
有人可以帮助您使用CASE条件功能进行翻译。
答案 0 :(得分:1)
documentation记录了这是如何工作的:
GROUP BY CASE WHEN userfrom > userto THEN userfrom ELSE userto END,
CASE WHEN userfrom > userto THEN userto ELSE userfrom END;
但是,在这种情况下,您只需使用min() / max()的非聚合形式:
GROUP BY max(userfrom, userto),
min(userfrom, userto);