Using MySql, can I sort a column but have 0 come last?

前端 未结 4 663
说谎
说谎 2020-12-24 05:38

I want to sort by an column of ints ascending, but I want 0 to come last. Is there anyway to do this in MySql?

4条回答
  •  失恋的感觉
    2020-12-24 05:50

    You may want to try the following:

    SELECT * FROM your_table ORDER BY your_field = 0, your_field;
    

    Test case:

    CREATE TABLE list (a int);
    
    INSERT INTO list VALUES (0);
    INSERT INTO list VALUES (0);
    INSERT INTO list VALUES (0);
    INSERT INTO list VALUES (1);
    INSERT INTO list VALUES (2);
    INSERT INTO list VALUES (3);
    INSERT INTO list VALUES (4);
    INSERT INTO list VALUES (5);
    

    Result:

    SELECT * FROM list ORDER BY a = 0, a;
    
    +------+
    | a    |
    +------+
    |    1 |
    |    2 |
    |    3 |
    |    4 |
    |    5 |
    |    0 |
    |    0 |
    |    0 |
    +------+
    8 rows in set (0.00 sec)
    

提交回复
热议问题