mysql按顺序排列的时候

zaw*_*zaw 0 mysql

我试图用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'排序?请帮忙..

lc.*_*lc. 6

要排序由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)