我想按升序的int列排序,但我想让0排在最后。无论如何在MySql中做到这一点?
您可能需要尝试以下方法:
SELECT * FROM your_table ORDER BY your_field = 0, your_field;
测试用例:
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);
结果:
SELECT * FROM list ORDER BY a = 0, a; +------+ | a | +------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 0 | | 0 | | 0 | +------+ 8 rows in set (0.00 sec)