您好我面临有关sql查询中的NULL条件检查的问题。
以下图片是关于为session_testset选择行,其中列“sync”为NULL值。
它有一行具有NULL值,但它仍然返回0记录。
当我改变条件并检查它是否为“NOT NULL”时。它正在回归记录。
但这是错的。为什么会这样?
这是我的桌子结构
答案 0 :(得分:2)
据我所知,如果我们使用SELECT * FROM table_name WHERE column_name IS NULL
之类的查询返回没有值的列,则表示未填充。您的表的值为NULL
。请检查您的代码,而不要在其中放置NULL值列。
答案 1 :(得分:2)
我认为Anaz已经准确地告诉了你所需要的东西 在列中没有值与在其中具有值'NULL'不同 您正在尝试使用IS NULL和IS NOT NULL。
我刚尝试了一个示例数据库的测试查询,这些查询工作正常:
1. SELECT * FROM sample_db WHERE name IS NULL; //returns row where name
column has no value
2. SELECT * FROM sample_db WHERE name IS NOT NULL; //returns row where name
column has values
答案 2 :(得分:0)
select * from session_testset where sync is null or sync = '';
或
select * from session_testset where ifnull(sync , '') = '';
或
select * from session_testset where coalesce(sync , '') = '';
或
select * from session_testset where ifnull(length(sync ), 0) = 0;