Ob MySQL bei Texten Groß- und Kleinschreibung unterscheidet, hängt vor allem von Datentyp und Kollation ab. Betriebssystem und Konfiguration beeinflussen zusätzlich die Behandlung von Bezeichnern.
Inhalt
Kollation verstehen
Endungen wie _ci bedeuten meist case-insensitive, _cs case-sensitive und _bin binären Vergleich.
SHOW VARIABLES LIKE 'collation%';
SHOW FULL COLUMNS FROM kunden;Vergleich gezielt formulieren
SELECT * FROM kunden WHERE name COLLATE utf8mb4_0900_as_cs = 'Müller';
SELECT * FROM kunden WHERE BINARY benutzername = 'Admin';Ein COLLATE-Ausdruck kann Indizes beeinflussen. Lege die gewünschte Semantik möglichst im Spaltenmodell fest.
Tabellen- und Dateinamen
Die Behandlung von Tabellennamen kann sich zwischen Linux und Windows unterscheiden. Entwickle mit konsistenter Schreibweise und ändere lower_case_table_names nicht unüberlegt.
Indizes und Eindeutigkeit
Bei Benutzernamen oder Codes entscheidet die Kollation, ob abc und ABC identisch sind. Prüfe Unique-Indizes vor Migrationen.
SHOW CREATE TABLE kunden;
EXPLAIN SELECT * FROM kunden WHERE name = 'Müller';Sichere Abfragen
Wichtig: Verwende parametrisierte Abfragen. Groß-/Kleinschreibung schützt nicht vor SQL-Injection.
- Kollation dokumentieren.
- Tests für Sonderzeichen anlegen.
- Systeme angleichen.
- Migrationen auf Datenkopien prüfen.
Fazit
Zuverlässige Vergleiche entstehen durch bewusst gewählte Kollationen, konsistente Bezeichner und Tests.




