Используя MySql, действительно ли я могу отсортировать столбец, но 0 были последними?

40
задан Toby Allen 1 July 2010 в 22:54
поделиться

3 ответа

Вы можете попробовать следующее:

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)
99
ответ дан 27 November 2019 в 01:19
поделиться
SELECT * FROM your_table ORDER BY 0.1/your_field;
0
ответ дан 27 November 2019 в 01:19
поделиться

Следующий запрос должен сделать свое дело.

(SELECT * FROM table WHERE num!=0 ORDER BY num) UNION (SELECT * FROM table WHERE num=0)
0
ответ дан 27 November 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: