如何在 MySQL 中为日语设置架构排序规则
How to set schema collation in MySQL for Japanese
我在整理时遇到问题。我想设置排序规则以支持日语。例如,当 table.firstname 有 'あ' 时,带有 'ぁ' 的查询应该 return 记录。提前致谢。
这就像 "uppercase" 和 "lowercase",对吗?
mysql> SELECT 'あ' = 'ぁ' COLLATE utf8_general_ci;
+---------------------------------------+
| 'あ' = 'ぁ' COLLATE utf8_general_ci |
+---------------------------------------+
| 0 |
+---------------------------------------+
mysql> SELECT 'あ' = 'ぁ' COLLATE utf8_unicode_ci;
+---------------------------------------+
| 'あ' = 'ぁ' COLLATE utf8_unicode_ci |
+---------------------------------------+
| 1 |
+---------------------------------------+
mysql> SELECT 'あ' = 'ぁ' COLLATE utf8_unicode_520_ci;
+-------------------------------------------+
| 'あ' = 'ぁ' COLLATE utf8_unicode_520_ci |
+-------------------------------------------+
| 1 |
+-------------------------------------------+
我建议将您的列更改为 COLLATION utf8_unicode_520_ci
(或 utf8mb4_unicode_520_ci
)。
如果您希望包含中文,请务必使用utf8mb4
。 (也许这个建议也适用于汉字。)
我在整理时遇到问题。我想设置排序规则以支持日语。例如,当 table.firstname 有 'あ' 时,带有 'ぁ' 的查询应该 return 记录。提前致谢。
这就像 "uppercase" 和 "lowercase",对吗?
mysql> SELECT 'あ' = 'ぁ' COLLATE utf8_general_ci;
+---------------------------------------+
| 'あ' = 'ぁ' COLLATE utf8_general_ci |
+---------------------------------------+
| 0 |
+---------------------------------------+
mysql> SELECT 'あ' = 'ぁ' COLLATE utf8_unicode_ci;
+---------------------------------------+
| 'あ' = 'ぁ' COLLATE utf8_unicode_ci |
+---------------------------------------+
| 1 |
+---------------------------------------+
mysql> SELECT 'あ' = 'ぁ' COLLATE utf8_unicode_520_ci;
+-------------------------------------------+
| 'あ' = 'ぁ' COLLATE utf8_unicode_520_ci |
+-------------------------------------------+
| 1 |
+-------------------------------------------+
我建议将您的列更改为 COLLATION utf8_unicode_520_ci
(或 utf8mb4_unicode_520_ci
)。
如果您希望包含中文,请务必使用utf8mb4
。 (也许这个建议也适用于汉字。)