难以捉摸的 MySQL 中的运算符
MySQL 提供了一个独特的运算符 ,它可能会让不熟悉其神秘用途的开发人员感到困惑。虽然它与传统的等号 (=) 相似,但它在处理 NULL 值时具有特殊意义。
空安全比较
与它的对应物不同,
空安全比较
=>确保一致的比较结果,无论是否存在 NULL 值。它不会产生 NULL,而是将 NULL 解释为特定值,从而能够在可能包含 NULL 的列之间进行可靠的比较。
... WHERE col_a <=> ? ...
代码优化和准备语句
事实证明在代码优化中特别有用。以以下准备好的语句为例:
此语句将占位符处理为标量值或 NULL,无需修改查询。
IS NOT NULL:验证值是否不为 NULL NULL。
这些运算符充当,更清楚地表达您的意图。
WHERE p.name IS NULL
查询转换以实现可移植性
为了增强跨平台的可移植性,您的查询可以转换为以下形式:IS [NOT] DISTINCT FROM
通用支持
CASE WHEN (a = b) or (a IS NULL AND b IS NULL) THEN 1 ELSE 0 END = 1
以上是MySQL 的 `` 运算符如何处理比较中的 NULL 值?的详细内容。更多信息请关注PHP中文网其他相关文章!