mysql - 为什么“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)
解决方案
推荐阅读
- javascript - 在同一页面上同时使用 highcharts 和 highstock
- angular - 搜索多个值并获取角度 6 中的相关字段
- javascript - 未捕获[不变违规:在上下文或道具中找不到“商店”
- python - 用于 Celery 的 JSON 序列化 Mongo 集合对象
- hyperledger - Hyperledger Composer 的性能
- sql-server - SQL Server - 如果包含特殊字符,则文本被截断
- c - rpmsg-lite 协议的 Linux 用户空间示例
- pycharm - JetBrains WebStorm/PyCharm 自动格式化 JSX 与 ESLint 缩进冲突
- c++ - 访问作为向量对 C++ 的地图值
- php - 如何在树枝的数组中打印值?