Offenbar ein sehr seltenes Problem, aber IMO extrem ärgerlich und FALSCH: Nachgestellte Leerzeichen in MySQL ist nicht im Vergleich verwendet:MySQL macht Leerzeichen Materie
mysql> SELECT "A" = "A ";
+------------+
| "A" = "A " |
+------------+
| 1 |
+------------+
1 row in set (0.00 sec)
Dies ist besonders problematisch im folgende Szenario:
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
Gibt es eine Möglichkeit, MySQL zu konfigurieren, um Whitespace richtig zu behandeln?
Ein Binärvergleich Entfernen von Leerzeichen am Ende verhindern: SELECT BINARY 'a' = BINARY 'a', '' –