暂无图片
暂无图片
2
暂无图片
暂无图片
1
暂无图片

OceanBase SQL语句BINARY运算符

2024-05-07
151

BINARY 运算符的语法

BINARY 运算符的语法如下:

BINARY expr
复制

BINARY 运算符将表达式 expr 转换为二进制字符串(即具有二进制字符集和二进制排序规则的字符串)。 在字符串比较中,BINARY常用于比较字符串的二进制值而不是逐字符的比较,而且比较中需要考虑尾随空格。示例如下:

obclient> SELECT 'aa' = 'AA';
+-------------+
| 'aa' = 'AA' |
+-------------+
|           1 |
+-------------+
1 row in set 

obclient> SELECT BINARY 'aa' = 'AA';
+--------------------+
| BINARY 'aa' = 'AA' |
+--------------------+
|                  0 |
+--------------------+
1 row in set 

obclient> SELECT 'aa' = 'aa ';
+--------------+
| 'aa' = 'aa ' |
+--------------+
|            1 |
+--------------+
1 row in set 

obclient> SELECT BINARY 'aa' = 'aa ';
+---------------------+
| BINARY 'aa' = 'aa ' |
+---------------------+
|                   0 |
+---------------------+
1 row in set
复制

二进制字符串转换说明

在 OceanBase 数据库中,可以使用如下三种方式将字符串表达式转换为二进制字符串:

CONVERT(expr USING BINARY)
CAST(expr AS BINARY)
BINARY expr
复制

需要注意的是,表达式中的 BINARY 运算符与字符列定义中的 BINARY 数据类型具有不同的效果。对于使用 BINARY 属性定义的列,数据库将分配给表默认的字符集和该字符集的二进制 (_bin) 排序规则。每个非二进制字符集都有一个 _bin 排序规则。例如,如果表默认字符集是 gbk,则如下的两种列定义是等效的:

CHAR(5) BINARY
<=>
CHAR(5) CHARACTER SET gbk COLLATE gbk_bin
复制

如果在 CHARVARCHAR 或 TEXT 列的定义中使用 CHARACTER SET binary 会导致该列被视为相应的二进制字符串数据类型。如下示例中的定义是等效的:

CHAR(5) CHARACTER SET binary
<=>
BINARY(5)

VARCHAR(10) CHARACTER SET binary
<=>
VARBINARY(10)

TEXT CHARACTER SET binary
<=>
BLOB
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

筱悦星辰
暂无图片
10月前
评论
暂无图片 0
人生最好的时刻,永远是当下。想要追求的梦想,就从此刻开始大胆去追吧,不用担心结果怎样,享受过程本就很美好。
10月前
暂无图片 点赞
评论