gpt4 book ai didi

mysql - 是否有理由不在mysql中使用<=>(空安全等于运算符)而不是=?

转载 作者:IT老高 更新时间:2023-10-29 00:15:10 25 4
gpt4 key购买 nike

MySQL 提供了一个很好的运算符 <=>适用于可能包含 null 的比较,例如 null <=> nullnull <=> 5等返回直观的结果作为许多编程语言。而普通的等于运算符总是只返回 null,这让许多新的 MySQL 用户(例如我自己)感到困惑。

MySQL 有这两种功能而不仅仅是 <=> 中的功能的原因吗? ?谁真正需要使用内置语言类型有效未定义的运算符?

最佳答案

Who really needs an operator that is effectively undefined with built in language types?

您要求提供一些真实世界的示例。这是一个虚假的。假设您有一个青年住宿项目或类似项目,其中一项要求是 children 只能与同性同住一个房间。您的数据库中有一个可为空的 M/F 字段 - 可为空,因为您的数据馈送不完整(您仍在追查一些数据)。你的房间匹配代码绝对不应该匹配 t1.Gender<=>t2.Gender 的学生,因为它最终可能会匹配两个性别未知的 child ,他们可能是异性。相反,您匹配它们相等的地方,而不是都为空。

这只是一个例子。我承认 NULL 的行为和 =运算符多年来引起了很多困惑,但最终的错误可能在于过多的在线 MySQL 教程,它们没有提及如何 NULL与运营商互动,也不存在 <=>运算符。

关于mysql - 是否有理由不在mysql中使用<=>(空安全等于运算符)而不是=?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10037298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com