mysql查询

vjhs03f7  于 2021-06-19  发布在  Mysql
关注(0)|答案(3)|浏览(274)

我有疑问

SELECT id_address, address1, address2 
FROM ps_address 
WHERE address1 REGEXP '[[:digit:]]'

查询返回两列数据,但也返回空字段

如何使查询不再显示空字段?

ni65a41a

ni65a41a1#

你应该检查它是否是空字符串。另外,不要忘记修剪()列,以防止出现任何空白。

SELECT id_address, address1, address2 
FROM ps_address 
WHERE address1 REGEXP '[[:digit:]]' and TRIM(address2) <> '' and TRIM(address1) <> ''
hiz5n14c

hiz5n14c2#

添加 address2 <> "" 给你的 where 条件,它将删除结果为空 address2 .

SELECT id_address, address1, address2 
FROM ps_address 
WHERE address1 REGEXP '[[:digit:]]' AND address2 <> ''
myzjeezk

myzjeezk3#

如果您指的是address2列中的空字段,那么我想回答的问题是空字段中有什么?是一个空间吗?多个空格?空字符串?一旦我们回答了这个问题,像下面这样简单的查询就可以工作了。

SELECT id_address, address1, address2 
FROM ps_address 
WHERE address1 REGEXP '[[:digit:]]'
    AND address2 != ''

或者这里有另一个选项,如果你不知道空字段是什么,但是你知道它们不是空的。

SELECT id_address, address1, address2 
FROM ps_address 
WHERE address1 REGEXP '[[:digit:]]'
    AND address2 NOT REGEXP '/s*'

这有道理吗?还是我不明白你的问题?

相关问题