MySQL 8.0版本说明
MySQL 8.0源代码文档10bet官方网站
的二进制
字符集是二进制字符串的字符集,二进制字符串是字节序列。的二进制
字符集有一个排序规则,也称为二进制
.比较和排序基于数值字节值,而不是数值字符代码值(对于多字节字符,这与数值字节值不同)。的差异的信息二进制
排序的二进制
字符集和_bin
非二进制字符集的排序,请参见第10.8.5节“binary Collation compare to _bin Collations”.
为二进制
字符集、字母大小写和重音相等的概念不适用:
对于作为二进制字符串存储的单字节字符,字符和字节边界是相同的,因此在比较中字母大小写和重音区别是显著的。也就是说,
二进制
排序规则区分大小写和重音。mysql> SET NAMES 'binary';mysql> SELECT CHARSET('abc'), COLLATION('abc');+----------------+------------------+ | 字符集(abc) |排序(“abc ') | +----------------+------------------+ | 二进制|二进制 | +----------------+------------------+ mysql >选择' abc ' = ' abc ', ' ' = ' a ';+---------------+------------+ | ' abc ' = ' ' = ' abc ' | ' ' | +---------------+------------+ | 0 | 0 | +---------------+------------+
对于存储为二进制字符串的多字节字符,字符和字节边界不同。字符边界丢失了,因此依赖于字符边界的比较没有意义。
要执行二进制字符串的大小写转换,首先使用与存储在字符串中的数据相适应的字符集将其转换为非二进制字符串:
mysql> SET @str = BINARY 'New York';mysql> SELECT LOWER(@str), LOWER(CONVERT(@str USING utf8mb4));+-------------+------------------------------------+ | 低(@str) |(转换(使用utf8mb4 @str )) | +-------------+------------------------------------+ | 纽约|纽约 | +-------------+------------------------------------+
要将字符串表达式转换为二进制字符串,这些构造是等价的:
二进制expr演员(expr作为二进制)转换(expr使用二进制)
如果值是字符串字面值,则_binary
可以使用引入器将其指定为二进制字符串。例如:
_binary ' a '
的_binary
引入器也可以用于十六进制字面量和位值字面量,但没有必要;默认情况下,这些字面值是二进制字符串。
有关介绍人的更多信息,请参见第10.3.8节“字符集介绍器”.
请注意
在mysql的值,二进制字符串使用十六进制表示法显示——binary-as-hex
.有关该选项的更多信息,请参见第4.5.1节,mysql命令行客户端.