给定以下选择语句:
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 中 NULL 与“”有很大不同。当某个字段为 NULL 时,表示该字段尚未设置任何值。另一方面,如果字段值为“”,则相当于该字段的值为空字符串。
关于MySQL 不等于 where 子句中 >= '' 为 null 吗?哪个表现更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50518964/