这可能是其他数据库中的情况,但是当您进行以下查询时
SELECT * FROM MyTbl WHERE MyColumn != 'Foo'
Run Code Online (Sandbox Code Playgroud)
那么MyColumn的任何记录,比方说,'Bar'被取出但不是MyColumn为NULL的地方.我认为这是预期的行为,背后有一个原因,我想知道为什么.
NULL被认为等于'Foo',或者它只是不期望成为条件的一部分,因为条件(NULL!='Foo')似乎是真的.
在DB逻辑中,NULL意味着该字段中根本没有定义的数据.它被认为与任何事物都不相同或不同.如果要获取相关行,则必须明确过滤它:
SELECT * FROM MyTbl WHERE MyColumn != 'Foo' OR MyColumn IS NULL
Run Code Online (Sandbox Code Playgroud)
见维基百科.
| 归档时间: |
|
| 查看次数: |
308 次 |
| 最近记录: |