栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在MySQL中,此运算符是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在MySQL中,此运算符是什么?

TL; DR

这是

NULL
安全的相等运算符。

像常规

=
运算符一样,将两个值进行比较,结果为
0
(不相等)或
1
(相等);换句话说:
'a' <=> 'b'
yields
0
'a' <=>'a'
yields
1

与常规

=
运算符不同,of的值
NULL
没有特殊含义,因此它永远不会产生
NULL
可能的结果。所以:
'a' <=>NULL
收益率
0
NULL <=> NULL
收益率
1

有用性

当两个操作数都可能包含

NULL
并且您需要两列之间的一致比较结果时,这可能会很有用。

另一个用例是准备好的语句,例如:

... WHERe col_a <=> ? ...

在这里,占位符可以是标量值,也可以

NULL
不必更改有关查询的任何内容。

相关运营商

此外

<=>
还有可以用来比较其他两家运营商
NULL
,分别是
IS NULL
IS NOT NULL
;
它们是ANSI标准的一部分,因此与其他数据库不同(与
<=>
特定于MySQL)不同,它们也受支持。

您可以将它们视为MySQL的专长

<=>

'a' IS NULL     ==> 'a' <=> NULL'a' IS NOT NULL ==> NOT('a' <=> NULL)

基于此,您的特定查询(片段)可以转换为更可移植的:

WHERe p.name IS NULL

支持

SQL:2003标准为此引入了一个谓词,其谓词

<=>
的形式与MySQL的运算符完全相同,其形式如下:

IS [NOT] DISTINCT FROM

普遍支持以下内容,但相对复杂:

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)     THEN 1     ELSE 0END = 1


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号