给定以下选择语句:
select starttime,id
from childattendance
where endtime is null
and starttime is not null
and date < date('2018-05-24')
and companyid = 1414;
如果我将其更改为以下内容,我会在 100% 的时间内获得相同的结果:
select starttime,id
from childattendance
where endtime is null
and starttime >= ''
and date < date('2018-05-24')
and companyid = 1414;
在我看来,如果一个字段有一个非空值,那么它总是大于或等于一个空字符串,不是这样吗?
如果这是真的,那么哪个表现更好?
这两个语句永远不会相等,因为在mysql NLL中,NULL 与 " 非常不同。当字段为 NULL 时,表示尚未将该字段设置为该值。另一方面,如果字段值为 ",则与表示该字段具有空字符串作为值相同。