当我从名称类似 Ð 的表中删除时 它也会删除所有包含 D 的项目。 同样的情况,有很多特殊字符,如何在 mysql 中用 php 解决这个问题。
最佳答案
这取决于您的排序规则,例如:
mysql> SELECT 'é'= 'e' COLLATE utf8_general_ci;
+-----------------------------------+
| 'é'= 'e' COLLATE utf8_general_ci |
+-----------------------------------+
| 1 |
+-----------------------------------+
1 row in set (0.00 sec)
mysql> SELECT 'é'= 'e' COLLATE utf8_bin;;
+----------------------------+
| 'é'= 'e' COLLATE utf8_bin |
+----------------------------+
| 0 |
+----------------------------+
1 row in set (0.00 sec)
如果您愿意,您可以为每个连接设置它:
mysql> SET collation_connection=utf8_bin;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT 'é'= 'e';
+-----------+
| 'é'= 'e' |
+-----------+
| 0 |
+-----------+
1 row in set (0.00 sec)
mysql> SET collation_connection=utf8_general_ci;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT 'é'= 'e';
+-----------+
| 'é'= 'e' |
+-----------+
| 1 |
+-----------+
1 row in set (0.00 sec)
关于php - 为什么像 Ð 和 D 这样的特殊字符在 MySQL 中具有相同的标识?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6271203/