这是逻辑:
. . . WHERE hh.deleted = 0 OR hh.deleted IS NULL . . .
我想使其更简洁明了,所以这里是新版本:
. . . WHERE hh.deleted <=> 0 . . .
但是结果不一样..知道为什么吗?和有什么不一样?
答案 0 :(得分:2)
它们不是相同的逻辑。考虑以下
deleted deleted = 0 OR deleted IS NULL deleted <=> 0
0 1 1
1 0 0
NULL 1 0
原因是如果一个操作数为<=>
,NULL
只会返回0(而不是如果NULL
为{{ 1}}),而在这种情况下deleted = 0
将返回1。