sql排序问题。请问有一个字段status 的值有5, 2,和0三种值。如何让status等于2在最前面,然后再根据status等于 2的数据的id倒叙

解决方案 »

  1.   

    SELECT
    `id`,
    `status`,
    CASE `status`
    WHEN 2 THEN
    8
    ELSE
    `status`
    END AS kkk
    FROM
    a
    ORDER BY
    kkk DESC,
    `id` DESC
      

  2.   

    select * form tbl_name order by status=2 desc, id desc
      

  3.   


    (select * from table where status=2 order by id desc) unicon all (select * from table where status=5 order by id desc) unicon all(select * from table where status=0 order by id desc);
      

  4.   

    SELECT `id`,`status` ORDER BY FIELD(`status`,'2','5','0'),`status` DESC
    field函数是自定义排序