MySQL中的比较操作符<=>
2019-09-08 21:34 abce 阅读(5019) 评论(0) 编辑 收藏 举报对于=操作符,两个值被比较,结果是0(不相等)或者1(相等)。
比较操作符<=>表示NULL安全的等价。这个比较操作符执行等价比较,和=操作符类似,但是如果两个操作数都是NULL,会返回1,而不是返回NULL;如果其中一个操作数是NULL,会返回0,而不是返回NULL。
当参与比较的两个操作数都可能包含NULL,而你需要获得两个列的一个一致性结果的时候,<=>比较操作符就很有用了。另外一个用例是,对于prepared语句,例如:
1 | ... WHERE col_a < = > ? ... |
这里的占位符可能是标量或者NULL,并不需要对语句做任何修改。
<=>是MySQL特有的语法:
1 2 | 'a' IS NULL = = > 'a' < = > NULL 'a' IS NOT NULL = = > NOT( 'a' < = > NULL) |
1 2 3 4 | mysql> SELECT 1 <=> 1, NULL <=> NULL , 1 <=> NULL ; -> 1, 1, 0 mysql> SELECT 1 = 1, NULL = NULL , 1 = NULL ; -> 1, NULL , NULL |
对于比较操作,(a,b)<=>(x,y)等价于:
1 | (a <=> x) AND (b <=> y) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)