NOT(IS NULL) 与 SQL 中的 IS NOT NULL 有何不同?
How is NOT(IS NULL) different from IS NOT NULL in SQL?
这个 SQL 查询有什么问题?
SELECT * FROM database.tablename
WHERE columnname NOT (IS NULL)
既然IS NULL
是一个布尔值,为什么NOT
不取反呢?
而是 returns 这个
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(IS NULL)' at line 2
纯粹是语法错误。
没有像下面这样的语法
SELECT * FROM database.tablename
WHERE columnname (IS NULL)
columnname 在上面的例子中变成了函数。正确的例子是
SELECT * FROM database.tablename
WHERE columnname IS NULL
所以如果你想在 IS Null 之前使用 Not,你需要像下面这样使用它:
SELECT * FROM database.tablename
WHERE Not (columnname IS NULL)
因为 (columnname IS NULL) 表示不是 (IS NULL)
但是常规的方法是像下面这样使用:
SELECT * FROM database.tablename
WHERE columnname IS NOT NULL
(以上两个语句会return相同的结果。)
这个 SQL 查询有什么问题?
SELECT * FROM database.tablename
WHERE columnname NOT (IS NULL)
既然IS NULL
是一个布尔值,为什么NOT
不取反呢?
而是 returns 这个
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(IS NULL)' at line 2
纯粹是语法错误。
没有像下面这样的语法
SELECT * FROM database.tablename
WHERE columnname (IS NULL)
columnname 在上面的例子中变成了函数。正确的例子是
SELECT * FROM database.tablename
WHERE columnname IS NULL
所以如果你想在 IS Null 之前使用 Not,你需要像下面这样使用它:
SELECT * FROM database.tablename
WHERE Not (columnname IS NULL)
因为 (columnname IS NULL) 表示不是 (IS NULL)
但是常规的方法是像下面这样使用:
SELECT * FROM database.tablename
WHERE columnname IS NOT NULL
(以上两个语句会return相同的结果。)