Вы не можете использовать NULL
в выражении IN
, поэтому вам нужно изменить первую часть предложения WHERE
на
WHERE status = 'priority' OR status IS NULL
Вы можете удалить вторую часть WHERE
предложение и просто
ORDER BY status = 'priority` DESC
это поместит строки с status = 'priority'
впереди тех, которые имеют status
из NULL
Таким образом, ваш запрос в целом становится:
SELECT * FROM gp
WHERE status = 'priority' OR status IS NULL
ORDER BY status = 'priority` DESC
LIMIT 1
Обратите внимание, что для получения «первой» строки с status = 'priority'
вам нужен столбец порядка (SQL таблицы не упорядочены, поэтому без столбца порядка «первый» не имеет смысла), и вы можно добавить это к предложению ORDER BY
:
SELECT * FROM gp
WHERE status = 'priority' OR status IS NULL
ORDER BY status = 'priority` DESC, id ASC
LIMIT 1