我正在使用两列userfromuserto将mysql中的行分组。我只需选择a和b之间的一条对话消息。下面的查询正是我想要的,但是我想将其部署到android sqlite查询中,但是sqlite只接受CASE Con​​dition函数。

 SELECT * FROM messeages WHERE userfrom='a' OR userto='a'
 group by
     IF(userfrom > userto, userfrom,userto),
     IF(userfrom > userto, userto,userfrom)


有人可以帮助使用CASE Con​​dition函数进行翻译。

最佳答案

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);

关于android - 使用CASE Con​​dition函数对多列进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47285948/

10-11 18:48