你不能用
NULL
在一个
IN
表达式,所以您需要更改
WHERE
WHERE status = 'priority' OR status IS NULL
您可以删除
哪里
ORDER BY status = 'priority` DESC
这将放置
status = 'priority'
领先于那些
status
属于
所以你的问题就变成了:
SELECT * FROM gp
WHERE status = 'priority' OR status IS NULL
ORDER BY status = 'priority` DESC
LIMIT 1
注意,要获得“第一”行
您需要一个ordering列(SQL表是无序的,因此没有ordering列“first”就没有意义),您可以将其添加到
ORDER BY
条款:
SELECT * FROM gp
WHERE status = 'priority' OR status IS NULL
ORDER BY status = 'priority` DESC, id ASC
LIMIT 1