Rol*_*ien 40 mysql sql sql-order-by
我想按一组提升的排序进行排序,但我希望0来最后.无论如何在MySql中执行此操作?
Dan*_*llo 100
您可能想尝试以下方法:
SELECT * FROM your_table ORDER BY your_field = 0, your_field;
Run Code Online (Sandbox Code Playgroud)
测试用例:
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);
Run Code Online (Sandbox Code Playgroud)
结果:
SELECT * FROM list ORDER BY a = 0, a;
+------+
| a |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 0 |
| 0 |
| 0 |
+------+
8 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)