首页 > 解决方案 > 为什么“SELECT 'ä' = 'ae' COLLATE latin1_german2_ci;”的结果 是 1?

问题描述

我是中国人。我不明白为什么MySQL 文档上的示例“SELECT 'ä' = 'ae' COLLATE latin1_german2_ci”的结果是 1?

此外,我还阅读了另一篇文章。它先将charset设置为latin1,然后“SELECT 'ä' = 'ae' COLLATE latin1_german2_ci”的结果变成0。为什么同一个sql的两个结果不一样?是因为字符集不同吗?

MySQL 文档上。

mysql> SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci;
+-----------------------------------------+
| 'ä' LIKE 'ae' COLLATE latin1_german2_ci |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+
mysql> SELECT 'ä' = 'ae' COLLATE latin1_german2_ci;
+--------------------------------------+
| 'ä' = 'ae' COLLATE latin1_german2_ci |
+--------------------------------------+
|                                    1 |
+--------------------------------------+

关于另一篇文章

mysql> set charset latin1;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT 'ä' = 'ae' COLLATE latin1_german2_ci;
+---------------------------------------+
| 'ä' = 'ae' COLLATE latin1_german2_ci  |
+---------------------------------------+
|                                     0 |
+---------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci;
+------------------------------------------+
| 'ä' LIKE 'ae' COLLATE latin1_german2_ci  |
+------------------------------------------+
|                                        0 |
+------------------------------------------+
1 row in set (0.00 sec)

标签: mysql

解决方案


推荐阅读