当字段为null且筛选器为“%”时,mysql中的select不返回行

wooyq4lh  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(329)

我有一张带字段的table:- field1 (Varchar(10)) Default NULL; 运行此sql时:

SELECT * FROM table WHERE field1 LIKE '%';

该查询不返回 Field1 IS NULL; 为什么? NULL 它不被认为是任何价值吗?
我有什么办法?我不知道表中要进行查询的字段的默认值。

v8wbuo2f

v8wbuo2f1#

SELECT *FROM table_name where column_name is null

试试这个代码。

qgzx9mmu

qgzx9mmu2#

当你打字的时候 LIKE '%' ,意思是«任何字符的字符串», 以及 NULL 不是字符串。
如果您想要只包含 null ,您必须写: SELECT * FROM table WHERE field1 IS NULL; 但是如果需要所有行,可以删除 WHERE 分开,写下: SELECT * FROM table

nhn9ugyo

nhn9ugyo3#

NULL 是未知值或缺少值。所以使用 COALESCE 函数使空值变为非空值。
查询

select * from `table`
where coalesce(`field1`, '') like '%';

相关问题