SQL - 如何选择不为 0 但可能为 NULL 的值?

Ric*_*uez 1 mysql

在我的 MySQL 表中,我有一些行status= NULL,一些行status= 0

在查询中选择它们时:

SELECT *
FROM `table`
WHERE `status` != 0
Run Code Online (Sandbox Code Playgroud)

这忽略了0和NULL值。

我怎样才能忽略 ONLY0值?

Joh*_*rak 5

您可以使用 is null谓词:

如果status是数字字段:

SELECT *
FROM `table`
WHERE `status` != 0
OR `status` IS NULL
Run Code Online (Sandbox Code Playgroud)

如果status是文本字段:

SELECT *
FROM `table`
WHERE `status` != '0'
OR `status` IS NULL
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为NULL != 0评估为NULL和NULL OR TRUE评估为TRUE。包含条件评估为的行NULL被拒绝。