5

在数据库中,在字段中,我有两个字段,它们是picNameUserNamepicName可以有一个值、一个图片的NULL名称或者它可以是的。

我想查询userName那些picName要么是要么为NULL条目。

我分别尝试了这些命令

Select userName from user where picName = ''

Select userName from user where picName IS NULL

但我想在 1 个查询中获得这两个结果。

我尝试使用IN这样的运算符

Select userName from user where picName IN ('' , IS NULL)

但它没有用。

我该怎么办...?

4

7 回答 7

17

OR如果您的条件有多个过滤器,请使用

Select userName 
from user 
where picName IS NULL OR 
      picName = ''
于 2012-10-17T17:13:08.427 回答
4

其他答案的替代方法是使用 MySQL 的IFNULL()orCOALESCE()函数:

SELECT userName FROM user WHERE IFNULL(picName='',TRUE);
SELECT userName FROM user WHERE COALESCE(picName,'') = '';
于 2012-10-17T17:16:49.547 回答
1

您希望满足两个条件之一,因此条件一OR条件二必须为真,而这正是您需要编写的内容:

Select userName from user where picName = '' OR picName IS NULL
于 2012-10-17T17:13:58.533 回答
0
SELECT userName FROM `user` WHERE picName IS NULL OR picName = ''
于 2012-10-17T17:13:45.840 回答
0

...ISNULL(picName ,'') 是MSSQL的函数

选择 case when (picname is null or picname = '' then username else 'filled' end from user

如果 picname = '' 或 null 则为您提供用户名,否则为文本 'Filled'。如果你想过滤这些使用(就像其他人说的那样):...其中 picname 为 null 或 picname = ''

于 2017-08-16T07:20:52.080 回答
0

检查空值和 NULL 值的解决方案。

COALESCE(NULLIF(table.column, ''), table.fallback)

所以您的查询将是:

SELECT userName FROM user WHERE NULLIF(picName, '') IS NULL
于 2020-12-23T18:51:57.473 回答
-1
select userName from user WHERE ISNULL(picName ,'') = ''
于 2016-02-12T12:38:25.707 回答