对于某些旧版本 MySQL,`<> ##` 是否匹配过 `NULL`
Did `<> ##` ever match `NULL` for some older version of MySQL
MySQL 查询中有一个 WHERE foo <> ##
子句当前正在排除 foo IS NULL
处的行。争论的焦点是基于此查询的列表 使用 来包含此类行。 <> ##
运算符是否曾为 MySQL 的某些过去版本包含 NULL
行?
用 =
、<
、>
、!=
、<>
、LIKE
、IN()
,等等。 returns NULL,表示未知的布尔状态。
在 MySQL 中一直是这种情况,本应如此,因为 ANSI SQL 以这种方式定义 NULL 语义。
MySQL 有一个可以比较 NULL 的运算符 <=>
。参见 https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_equal-to
MySQL 查询中有一个 WHERE foo <> ##
子句当前正在排除 foo IS NULL
处的行。争论的焦点是基于此查询的列表 使用 来包含此类行。 <> ##
运算符是否曾为 MySQL 的某些过去版本包含 NULL
行?
用 =
、<
、>
、!=
、<>
、LIKE
、IN()
,等等。 returns NULL,表示未知的布尔状态。
在 MySQL 中一直是这种情况,本应如此,因为 ANSI SQL 以这种方式定义 NULL 语义。
MySQL 有一个可以比较 NULL 的运算符 <=>
。参见 https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_equal-to