什么时候不使用 <=> 而不是 MariaDB/MySQL 中的 =?
When not to use <=> instead of = in MariaDB/MySQL?
有没有理由在 MariaDB/MySQL 中使用 =
而不是 <=>
?似乎 =
运算符只有在表达式结果需要 null 时才是可取的。
将每个 =
替换为 <=>
会产生任何后果吗?即使两个操作数永远不能为空(行为应该保持完全相同)?
首先,NULL
的意思不太清楚。网上有很多关于人们如何解读它的文章。
因此,使用 <=>
只会增加混乱,并且您冒着风险,因为其他开发人员可能不太了解它。它严重偏离了大多数人期望查询的标准行为。我建议您避免使用它,除非有充分的理由使用它。
a = b -- Always NULL (which is usually treated as False) if either is NULL
a <=> b -- True if _both_ are NULL
如果两列都声明为 NOT NULL
,则使用 <=>
没有用。
在几乎所有其他情况下,您的逻辑都不会关心。
我几乎从未见过有人使用 <=>
。
有没有理由在 MariaDB/MySQL 中使用 =
而不是 <=>
?似乎 =
运算符只有在表达式结果需要 null 时才是可取的。
将每个 =
替换为 <=>
会产生任何后果吗?即使两个操作数永远不能为空(行为应该保持完全相同)?
首先,NULL
的意思不太清楚。网上有很多关于人们如何解读它的文章。
因此,使用 <=>
只会增加混乱,并且您冒着风险,因为其他开发人员可能不太了解它。它严重偏离了大多数人期望查询的标准行为。我建议您避免使用它,除非有充分的理由使用它。
a = b -- Always NULL (which is usually treated as False) if either is NULL
a <=> b -- True if _both_ are NULL
如果两列都声明为 NOT NULL
,则使用 <=>
没有用。
在几乎所有其他情况下,您的逻辑都不会关心。
我几乎从未见过有人使用 <=>
。