IS NOT NULL返回包括NULL的所有行

时间:2013-10-11 05:56:15

标签: mysql sql

我有一个包含多个列的数据库,但我只感兴趣获得两列col-A& col-B,条件是该行将具有: col-A是任何价值& col-B必须为NOT NULL。

我很好地搜索了这个论坛,并且在最简单的尝试中,下面给出了一个:

SELECT col-A,col-B FROM ports WHERE col-B IS NOT NULL; 

当我运行此查询时,它会转储包含以下行的列:(请注意 - 此处“ports”是表)

col-A = ANY VALUE + col-B = NULL(blank/empty field)
col-A = ANY VALUE + col-B = NON NULL

即使我尝试过。最通用的语法:

SELECT * FROM ports WHERE col-B IS NOT NULL; <<<< it dumps both empty & non-empty rows

MySQL版本是5.5.32。

2 个答案:

答案 0 :(得分:2)

检查两个条件:空白和null

SELECT col-A,col-B 
FROM ports 
WHERE col-B IS NOT NULL and col-B <> ''

空白不是nullnull表示没有值,空白字符串为''

答案 1 :(得分:0)

@uergen的答案很好。但如果您想尝试其他方法,请检查此

SELECT col-A,col-B 
FROM ports 
WHERE LENGTH(col-B) > 0