使用MySql,我可以对列进行排序但是最后有0吗?

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)

  • 完美,如此简单! (3认同)
  • 你能用ORDER BY设置任何布尔条件吗? (3认同)
  • @JSmaga:您可以使用任何表达式.请参阅`ORDER BY` [此处为语法](http://dev.mysql.com/doc/refman/5.1/en/select.html):`[ORDER BY {col_name | expr | 位置}` (2认同)