2 dreamleadtoword dreamLeadToword 于 2014.11.25 21:18 提问

mysql多个值排序,类似置顶

Mysql 指定多个值排序,类似置顶。请高手指教,谢谢!!

有个表mytb
id name
1 oop
2 vs
3 ui
4 lli
要实现效果:
指定2排第一,4排第二,其他的降序或者升序。
2 vs
4 lli
1 oop
3 ui
或者
2 vs
4 lli
3 ui
1 oop
请问怎样实现,谢谢!只有1币,请不要介意。。。。

4个回答

caozhy
caozhy   Ds   Rxr 2014.11.25 22:24
已采纳

两个思路,一个是先查出需要置顶的,然后查出不含置顶的排序,最后用union连起来;另一个思路是,首先将全部数据按照是否置顶排序,再按照原来的顺序排序。写两次order by。

guwei4037
guwei4037   Ds   Rxr 2014.11.25 21:27

与其在存储过程中做文章,不如再加两个字段标识是否置顶,置顶时间。然后直接根据这两个字段排序即可。

luxiuwen
luxiuwen   2014.11.27 17:29

select id, name from mytb order by (
case
when id = 2 then 1
when id = 4 then 2
else 3 end
)

xuzuning
xuzuning   Ds   Rxr 2014.11.26 10:00

select * from mytb order by id=2 desc, id=4 desc

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!