在查询过程中,我们经常用到非空和is null的查询,为了更高效的查询,我们应该知道那种方法更快。
在上一篇中,我们已经添加了一些数据。根据这些数据我们就可以来做一些验证。
第一步,is NULL要比ISNULL()的比较
SELECT * from 表名 where 字段名 is NULL
SELECT * from 表名 where ISNULL(字段名)
由上面可以看出,is NULL要比ISNULL()快一点。
第二步,is NULL和IFNULL()的比较
SELECT * from 表名 where 字段名 is NULL
SELECT * from 表名 where IFNULL(字段名,'0') = '0';
由上面可以看出,可看出IFNULL()要比is NULL快一点。
综上所述,查询空值的运行速度基本上为IFNULL()>is NULL>ISNULL()。
原文