这个 SQL 查询有什么问题?
SELECT * FROM database.tablename
WHERE columnname NOT (IS NULL)
既然 IS NULL
是一个布尔值,为什么 NOT
不否定它?
而是返回这个
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
答案 0 :(得分:1)
这纯粹是语法错误。
没有像下面这样的语法
SELECT * FROM database.tablename
WHERE columnname (IS NULL)
columnname 在上面的例子中变成了函数。正确的例子是
SELECT * FROM database.tablename
WHERE columnname IS NULL
所以如果你想在 IS Null 之前使用 Not before 你需要像下面这样使用它:
SELECT * FROM database.tablename
WHERE Not (columnname IS NULL)
因为 (columnname IS NULL) 是表示不 (IS NULL)
但传统的方法是使用如下:
SELECT * FROM database.tablename
WHERE columnname IS NOT NULL
(以上两条语句将返回相同的结果。)