我试图用mysql进行特定的排序.这是我的桌子
id fb_id ... date_added
1 1111111111 2013-04-15 14:15:00
2 1111111111 2013-04-15 14:16:00
3 1111111111 2013-04-15 14:17:00
4 2222222222 2013-04-15 14:18:00
5 3333333333 2013-04-15 14:19:00
6 4444444444 2013-04-15 14:20:00
7 2222222222 2013-04-15 14:21:00
8 1111111111 2013-04-15 14:22:00
Run Code Online (Sandbox Code Playgroud)
我期待的是先按fb_id 111111111和2222222222进行排序然后按照最新的日期顺序排序其余...
id fb_id ... date_added
1 1111111111 2013-04-15 14:22:00
2 2222222222 2013-04-15 14:21:00
3 2222222222 2013-04-15 14:18:00
4 1111111111 2013-04-15 14:17:00
5 1111111111 2013-04-15 14:16:00
6 1111111111 2013-04-15 14:15:00
7 4444444444 2013-04-15 14:20:00
8 3333333333 2013-04-15 14:19:00
Run Code Online (Sandbox Code Playgroud)
SQL我正在尝试:
SELECT `id`, `fb_id`, `date_added` from MyTable
ORDER BY case when fb_id in (1111111111,2222222222) then -1 else date_added end, date_added desc
Run Code Online (Sandbox Code Playgroud)
它首先按fb_id排序,但其余数据没有按'date_added desc'排序?请帮忙..
要排序由date_added因您的第一个升序ELSE条款.尝试:
ORDER BY case when fb_id in (1111111111,2222222222) then 0 else 1 end,
date_added desc
Run Code Online (Sandbox Code Playgroud)