Ras*_*had 10 mysql sql-order-by
我在下面有sql,想要多个ORDER BY.
SELECT
r.*,
s.uzunluq,
b.id,
au.status_id as aksessuar_status,
au.aksessuar_id,
au.aksessuar
FROM
seksiya s,
result r
LEFT JOIN bosh_seksiya_aksessuar b
ON
b.bosh_seksiya = r.model AND
b.ERK = :ses
LEFT JOIN aksessuar_up au
ON au.model_id = r.res_id AND
au.user_id = :user_id AND
au.status_id = 9
WHERE
r.user_id = :user_id AND
r.model=s.seksiya AND
s.erk = :ses AND
r.status_id IN (1,2,3,4,5)
ORDER BY
r.res_id
Run Code Online (Sandbox Code Playgroud)
我想写php PDO对你来说并不重要,伙计们,这个问题只引起我的问题.这个sql工作得很好,我只是想添加额外的功能.所以,看看这个专栏:r.status_id IN (1,2,3,4,5)
我给了 Order BY r.res_id
我的问题:我想为每个使用多个ORDER status_id
如何订购:
ORDER BY r.res_id DESC WHERE r.status_id IN (1,2)
和
ORDER BY r.res_id WHERE r.status_id IN (3,4,5)
在这个SQL?
ORDER BY IF(r.status_id IN (1,2), r.res_id, NULL) DESC, r.res_id
Run Code Online (Sandbox Code Playgroud)
使用此ORDER BY
子句排序的记录集将首先显示所有记录r.status_id IN (1,2)
(因为NULL
值按递减顺序排在最后),它们自己按降序排列r.res_id
; 然后按r.res_id
升序排序所有其他值.