Есть ли способ установить порядок по умолчанию, используемый MYSQL, в NULL в определенной записи.MYSQL order NULL между двумя конкретными записями
мой стол:
id state
1 downloading
2 NULL
3 error
4 finish
5 downloading
6 NULL
7 NULL
8 fail
9 finish
10 error
Я хочу быть NULL между «загрузки» и «ошибки» и не показывать «закончить», «провал». (после запроса в MYSQL) Я хочу привести быть похожим на это:
id state
1 downloading
5 downloading
2 NULL
6 NULL
7 NULL
3 error
10 error
мой запрос: (не работает)
SELECT * FROM `report_table`
WHERE
state NOT IN ('finish','fail')
ORDER BY
case
when state= 'downloading' then 1
when state IS NULL then 2
when state= 'error' then 3
else 6
end, state ASC , id ASC
LIMIT 1
Вы пробовали 'ORDER BY id ASC'? –
@ Heru-Luin: Это не помогает. результаты уже упорядочены по ID ASC. – funforums
Вы можете использовать mysql's ['FIELD (str, str1, str2, str3, ...)'] (http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_field) -> 'ORDER BY FIELD (\' state \ ', 'downloading', NULL, 'error', 'fail', 'finish')' – Sean