mysql动态ORDER BY子句

时间:2015-06-02 06:39:52

标签: mysql

SELECT
    r.*,
    ss.length
FROM
    result r,
    soptions ss,
    sections s
WHERE 
    r.model = s.id AND
    s.catalog2_id = ss.catalog2_id AND
    r.user_id = 1 AND
    ss.erk_id = 4 AND
    r.status_id NOT IN(1,2,3,4)
ORDER BY
    IF(r.side_id = 2, r.side_id, NULL) DESC, r.id

这个sql命令对我有用。 我没有看到描述我的表结构的原因,因为我只想在ORDER BY添加一行。 不久,有没有办法使用下面的多个IF条件?或者我需要设置CASE WHEN ELSE?我尝试过使用CASE WHEN,但没有得到结果。

...
ORDER BY
  IF(r.side_id = 2, r.side_id, NULL) DESC, r.id
  IF(r.status_id = 6, r.id, NULL) DESC, r.id

1 个答案:

答案 0 :(得分:2)

你能做这样的事吗:

categories