【发布时间】:2012-07-02 22:48:56
【问题描述】:
显然是一个非常罕见的问题,但 IMO 非常烦人且错误:比较中未使用 MySQL 中的尾随空格:
mysql> SELECT "A" = "A ";
+------------+
| "A" = "A " |
+------------+
| 1 |
+------------+
1 row in set (0.00 sec)
这在以下场景中尤其成问题:
mysql> SELECT COUNT(*) FROM eq WHERE name != TRIM(name);
+------------+
| COUNT(*) |
+------------+
| 0 |
+------------+
1 row in set (0.00 sec)
mysql> UPDATE eq SET name=TRIM(name);
Query OK, 866 row affected (0.01 sec)
Rows matched: 650907 Changed: 866 Warnings: 0
有没有办法配置 MySQL 以正确处理空格?
【问题讨论】:
-
二进制比较将防止删除尾随空格:
SELECT BINARY 'a ' = BINARY 'a';
标签: mysql