字符表达式字 符集和字符序
每个字符表达式都有一个字符集和一个字符序。
指定字符表达式的字符集和字符序
对于简单语句 SELECT 'string',该字符表达式的默认字符集和字符序由 character_set_connection 和 collation_connection 系统变量定义。
COLLATE 子句可以用于指定字符表达式的字符集和字符序,语法如下:
[_charset_name]'string' [COLLATE collation_name]
示例如下:
SELECT _utf8mb4'abc' COLLATE utf8mb4_unicode_ci;
+------------------------------------------+
| _utf8mb4'abc' COLLATE utf8mb4_unicode_ci |
+------------------------------------------+
| abc |
+------------------------------------------+
1 row in set (0.001 sec)
在指定 SQL 中常量的字符集时,对于 gb18030_2022,在十六进制数前添加 _gb18030_2022 可以将该编码转换为 gb18030_2022 下的相应字符。在字符串前添加 _gb18030_2022 可以指定该字符串的字符集为 gb18030_2022。
SELECT _gb18030_2022 0xCDE5 AS c FROM DUAL;
+-----+
| c |
+-----+
| 湾 |
+-----+
1 row in set (0.001 sec)
SELECT _gb18030_2022 '湾' AS c FROM DUAL;
+-----+
| c |
+-----+
| 婀 |
+-----+
1 row in set, 1 warning (0.000 sec)