mysql中的优先排序

2022-03-16 17:19:18 浏览1498次 作者: 旋风

收藏

假设有这么一张表,名字叫user,里面有三个列,id,uid,title,我需要写一个排序,uid为5的排在第一位,uid为7的排在第二位,uid为2的排在第三位,那么sql语句怎么写呢?我试了一下,如下:

SELECT * FROM `user` order by
(
case 
    when uid=5  then 1    
    when uid=7 then 2
    when uid=2 then 3
    else 4 end
),uid asc;

具体如上,其中上面的then 1 表示排在第一位,then 2 表示排在第二位, then 3 表示排在第三位,else 4表示uid不是5不是7不是2的排在第四位,而且第四位是根据uid进行asc的。

    如果您只需要排其中一个优先,比如uid为6的第一位,其他用户正常排序,那么代码如下:

SELECT * FROM `user` order by
(
    case 
        when uid=5  then 1 
        else 3 
        end
),uid asc;


当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。

收藏 分享

相关文章

评论:

文明上网理性发言,请遵守 新闻评论服务协议

当前还没有评论,快来评论吧

上报错误