MySQL 8.0发布说明
MySQL 8.0源码文档10bet官方网站
的二进制
字符集是二进制字符串的字符集,它是字节序列。的二进制
字符集有一个整理,也命名二进制
.比较和排序基于数字字节值,而不是在数字字符代码值(用于多字节字符与数字字节值不同)。有关差异之间的信息二进制
束缚二进制
字符集和_bin
非二进制字符集的排序,请参见第10.8.5节“二进制排列与_bin集合相比”.
为二进制
字符集,LetterCase和口音等效的概念不适用:
对于存储为二进制字符串的单字节字符,字符边界和字节边界是相同的,因此在比较中字母和重音的差异是显著的。也就是说,
二进制
排序规则区分大小写和口音。mysql>设置名称'二进制';mysql>选择charset('abc'),collation('abc');+ ---------------- + ------------------- + |charset('abc')|整理('abc')|+ ---------------- + ------------------- + |二进制|二进制|+ ------------------------------ + MySQL>选择'ABC'='ABC','a'='ä';+ -------------- + ------------ + | 'abc' = 'ABC' | 'a' = 'ä' | +---------------+------------+ | 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 - mysql命令行客户端”.