查询学生表的数据,发现有三行数据 gender列是空值的。如图
我们可以用什么方法查询显示出gender列是空值的数据呢?
select * from student where gender = ''这样?
如图,这样是查询不到的。空值(NULL)不等同于空字符串值
那如果用 = null是否可以得到正确的结果?
select * from student where gender=null
结果如图,也查询不到正确的数据。
要查null值的数据,可以用mysql内置的is_null函数,
select * from student where isnull(gender)
传入的参数就是列名, 如图,可以正确查询到结果,
除了用上面的 is_null方法,我们还可以用比较操作符 is null来查询,
select * from student where gender is null
如图,可以正确查询到结果,和上面的函数一样,只不过是语法上的差别。
那如果是查询所有不是null值的数据呢?
我们可以用 is not null来查询
select * from student where gender is not null
用函数的方法就是
select * from student where !ISNULL(gender)
或
select * from student where not ISNULL(gender)
当有查询到有null值数据时,我们希望将null值替换成其他字符串时,可以用 ifnull()函数, 比如把null的值,换成‘未知’,
select id, name, IFNULL(gender,'未知') as gender from student
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!