如何在MySQL中选择非空列?

时间:2013-01-29 04:46:21

标签: mysql

很抱歉,如果以前曾经问过这个,但我一直在搜索,找不到解决我这个简单问题的方法。

我需要选择其中varchar列中包含文本的所有行(字母,数字或特殊字符),因此我编写了如下查询:

SELECT col1
FROM table
WHERE col1 IS NOT NULL

但是这会返回包含值''的列(即它是空白的,但不会设置为NULL,因此仍然会返回)。

我尝试将查询更改为:

SELECT col1
FROM table
WHERE col1 IS NOT NULL
AND col1 != ''

但那没用。

如何停止返回列空白的行?

3 个答案:

答案 0 :(得分:25)

使用TRIM您的列中似乎有空格

SELECT col1
FROM table
WHERE col1 IS NOT NULL
AND TRIM(col1) <> ''

答案 1 :(得分:1)

如果列为空,但未设置为NULL

,则可以使用此查询

SELECT col1 FROM table where col1 not like '';#两个没有空格的单引号

OR

此if列有一个或多个空格

SELECT col1 FROM table where col1 not like '% %';

答案 2 :(得分:0)

使用 LENGTH

SELECT col1
FROM table
WHERE LENGTH(col1) > 0