如何在MySQL中选择非空列?

How to select non-empty columns in MySQL?

提问人:Nate 提问时间:1/29/2013 更新时间:2/17/2018 访问量:32920

问:

很抱歉,如果之前有人问过这个问题,但我一直在寻找,找不到解决我简单问题的方法。

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

SELECT col1
FROM table
WHERE col1 IS NOT NULL

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

我尝试将查询更改为:

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

但这没有用。

如何阻止返回列为空的行?

MySQL数据库

评论


答:

26赞 Raab 1/29/2013 #1

然后使用你的列中似乎有空格TRIM

SELECT col1
FROM table
WHERE col1 IS NOT NULL
AND TRIM(col1) <> ''
1赞 Shankar Kalyankar 1/29/2013 #2

如果列为空,但未设置为 NULL ,则可以使用此查询

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

如果列有一个或多个空格,

SELECT col1 FROM table where col1 not like '% %';
1赞 sj59 2/17/2018 #3

使用 LENGTH

SELECT col1
FROM table
WHERE LENGTH(col1) > 0