php - mysql - порядок по полю больше 0 - PullRequest
0 голосов
/ 28 мая 2018

предположим, у меня есть эти строки в моей базе данных:

1
0
5
2
0
3
3
5
0
5

Я хочу отсортировать свои поля, мне нужно сначала вернуть поля с ненулевым значением, а когда с нулевым значением, отсортированные строки должны выглядетькак это

1
5
2
3
3
5
5
0
0
0

Я не хочу сортировать по номеру, я хочу показать 0 значений наконец,

У меня есть этот код, но он сортирует их по номеру:

 ORDER BY cASE WHEN num_mojud = 0 THEN num_mojud END ASC,CASE WHEN num_mojud > 0 THEN num_mojud END ASC
or
ORDER BY IF (num_mojud = 0, 9999999, num_mojud )

как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 28 мая 2018
select num_mojud
from MyTable
order by case when num_mojud is 0 then 1 else 0 end, num_mojud
0 голосов
/ 28 мая 2018

Вы можете выбрать num_mojud из пользовательской таблицы.

Первый: SELECT num_mojud FROM tableName WHERE num_mojud > 0 получить все числа больше 0 Второй: SELECT num_mojud FROM tableName WHERE num_mojud = 0 все числа равны 0

SELECT num_mojud 
FROM (
    (SELECT num_mojud FROM tableName WHERE num_mojud > 0) 
    UNION
    (SELECT num_mojud FROM tableName WHERE num_mojud = 0)
) as myCustomTable
0 голосов
/ 28 мая 2018

В MySQL вы можете использовать два ключа для сортировки.Обратите внимание, что таблицы SQL представляют неупорядоченные наборы.Итак, наивно, вы можете поставить нули первыми, просто отсортировав их по значению (при условии, что значения неотрицательны):

order by num_mojud

Это, похоже, не то, что вы хотите.Вы можете поместить нули первыми, а остальные в произвольном порядке , выполнив:

order by (num_mojud = 0) desc

MySQL обрабатывает логические значения как числа, с "1" для true и "0" для false.Следовательно, desc в заказе по ключу.

Вы можете поместить нули первыми, а остальные в порядке random , выполнив:

order by (num_mojud = 0) desc, rand()

Вы можетепоставьте сначала нули и сохраните порядок остальных, если у вас есть столбец с нужным вам порядком:

order by (num_mojud = 0) desc, id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...