繁体   English   中英

按 id 用户 sql 订购分组表

[英]Order grouped table by id user sql

我想使用特定用户选择的数字作为参考来订购分组语句。

 SELECT *
 FROM likes 
 WHERE /**/
 GROUP BY type

桌子

id_user  type
1420    1   
1421    3
1422    3
1424    7
1425    4
1426    2
1427    1

预期结果(最终用户 1425 选择了什么)

1
2
3
7
4 //choosen by id_user 1425

我想将最后一行与用户选择的数字放在一起。 我就是想不通

您可以聚合并使用条件max进行排序,如下所示:

select type
from likes
group by likes
order by max(case when id_user = 1425 then 1 else 0 end), type

如果给定type的任何行的id_user与所选值匹配,则条件max返回1 ,将其放在结果集中的最后。 第二个排序标准打破了不满足条件的组的关系。

如果您正在运行 MySQL,您可以稍微简化order by子句:

order by max(id_user = 1425), type

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM