我遇到了一个问题。
谁能解释一下为什么
SELECT (null <> 'TEST STRING')
和
SELECT (null != 'TEST STRING')
返回 NULL 而不是您所期望的 bool 值 true?
我不是在寻找解决方案,而是在寻找 SQL 为何如此运行的解释。
无论使用哪种语言,您都希望进行任何比较都会返回 bool 值。
最佳答案
不能使用 NULL 运算符执行算术比较。因此,当您使用 NULL 执行算术运算时,如 <>
和!=
它给你 NULL(一个无意义的值),这违背了你对 bool 值的期望。
MySQL可以引用 NULL 在 MySQL 中如何工作的解释。
还要注意的是,在MySql中NULL是特殊的,它的意思是unknown
在编程中它的值意味着 undefined value
.
关于MySql 比较时返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29715316/