在MariaDB / MySQL中何时不使用<=>代替=?

时间:2019-06-20 23:26:59

标签: mysql null mariadb comparison-operators

在MariaDB / MySQL中是否有任何理由使用$ awk '{n=NR%3} n!=1{printf "%s%s", $0, (n?", ":ORS)}' file question1, answer1 question2, answer2 question3, answer3 而不是<=>?似乎=运算符仅在表达式结果需要null时才是理想的。

=替换每个=是否有后果?即使两个操作数都不能为null(其行为应保持完全相同)?

2 个答案:

答案 0 :(得分:2)

首先,NULL的含义还不清楚。互联网上有很多关于人们如何解释它的文章。

因此,使用<=>只会增加混乱,您可能要冒其他开发者可能不太了解的风险。它与大多数人期望的标准行为完全不同。我建议您避免使用它,除非有充分的理由使用它。

答案 1 :(得分:0)

a = b  -- Always NULL (which is usually treated as False) if either is NULL
a <=> b  -- True if _both_ are NULL

如果两列都声明为NOT NULL,则无法使用<=>

在几乎所有其他情况下,您的逻辑都不在乎。

我几乎从未见过有人使用<=>