首页 MySQL BINARY 操作符

MySQL BINARY 操作符

在 MySQL 中, BINARY 操作符将一个字符串转为二进制字符串。二进制字符串使用 binary 字符集和 binary 排序规则。 BINARY 操作符常用在对字符串进行逐字节比较而不是逐字符比较。

BINARY 语法

这里是 MySQL BINARY 操作符的语法:

BINARY expr

BINARY expr 等同于 CONVERT(expr, BINARY)CAST(expr AS BINARY) 函数。

参数

expr
必需的。 一个需要转为二进制的值或者表达式。

返回值

MySQL BINARY 返回由参数转为的二进制字符串。

如果您没有为 BINARY 提供参数,MySQL 将返回一个错误。

BINARY 示例

基本用法

本示例展示了如何使用 BINARY 操作符将 'Hello' 转为二进制字符串

SELECT BINARY 'Hello';
+--------------------------------+
| BINARY 'Hello'                 |
+--------------------------------+
| 0x48656C6C6F                   |
+--------------------------------+

注意, 在 mysql client 中,二进制字符串默认以十六进制的形式打印出来。

比较字符串

BINARY 操作符经常用在字符串比较中。

SELECT 'hello' = 'HELLO';
+-------------------+
| 'hello' = 'HELLO' |
+-------------------+
|                 1 |
+-------------------+

这里,由于使用的字符集和排序规则,比较字符串的时候是不区分大小写的,因此 'hello' = 'HELLO' 返回了 1。 如果我们想要按照区分大小写比较字符串,可以使用 BINARY 将字符串转为二进制后按字节进行比较。如下:

SELECT BINARY 'hello' = 'HELLO';
+--------------------------+
| BINARY 'hello' = 'HELLO' |
+--------------------------+
|                        0 |
+--------------------------+

结果是显而易见的。

BINARY 操作符也会导致字符串结尾的空格在比较重变得重要。请看下面的例子:

SELECT 'a' = 'a ', BINARY 'a' = 'a ';
+------------+-------------------+
| 'a' = 'a ' | BINARY 'a' = 'a ' |
+------------+-------------------+
|          1 |                 0 |
+------------+-------------------+

这里,

  • 'a' = 'a ' 返回了 1,它说明在比较中 'a ' 结尾的空格被忽略了。
  • BINARY 'a' = 'a ' 返回了 0,它说明在比较中 'a ' 结尾的空格没有被忽略。
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。