• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Groß-/Kleinschreibung ignorieren

Hallo-Welt

Aktives Mitglied
Guten Abend allerseits.

Ich versuche zurzeit MySQL dazu zu bringen, die Groß- und Kleinschreibung für eine Kollone nicht zu berücksichtigen. Hintergrund ist es, dass Nutzernamen die im Kommentarbereich auf meiner Seite eingegeben werden auch dann wiedererkannt werden sollen, wenn die groß- und kleinschreibung nicht ganz so stimmt, wie in der DB hinterlegt.
Ich hab auch schon recherchiert und herausgefunden, dass ich die Kollation dafür in utf8_bin umändern muss. Hab ich dann auch gemacht in PHPMyAdmin, ganz einfach auf bearbeiten geklickt und entsprechend aktualisiert. Dennoch gab es bei entsprechender Abfrage mit falscher groß-/kleinschreibung ein leeres Ergenbiss zuRück.
Dann hab ich einfach die ganze Tabelle von uft8_general_ci in utf8_bin umgewandelt, da in PHPMyAdmin nicht graphisch hinterlegt, mit dem Befehl
Code:
ALTER TABLE `userdata` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin
Ich bekam von PHPMyAdmin dann auch die zugegeben sehr freundliche Rückmeldung
Code:
 Ihr SQL-Befehl wurde erfolgreich ausgeführt (Die Abfrage dauerte 0.0100 Sekunden)
Dennoch bekam ich bei meinem Versuch wiederum ein leeres Ergebniss zurück. Was mache ich falsch, bzw. was habe ich missartet? Kann man die Groß-/Kleinschreibung überhaupt mit der utf8_bin -Kollation missachten, und wenn nein, wie geht es anders?
 
Werbung:
Werbung:
Ich hätte nun auch gesagt mach doch einfach bevor du den SQL abfeuerst den Suchwert mit php klein mit strtolower()
 
Ich hätte nun auch gesagt mach doch einfach bevor du den SQL abfeuerst den Suchwert mit php klein mit strtolower()
Bevor ich es überhaupt in die DB schreibe, meinst du? Das ginge auch, allerdings hätte ich dann die groß-kleinschreibung vollständig zerstört. Ich möchte aber nur eine Kompatibilität schaffen.
Aber ich würde mal sagen, dass sich mein Anliegen erledigt hat, dank der SQL-UPPER()-Funktion. Ich hoffe halt nur, dass darunter nicht die Dynamik der DB leidet, in punkto Geschwindigkeit und Rechenleistung meine ich.
 
Werbung:
Hab zwar keine Ahnung jedoch glaube ich wird das keine Rolle spielen, du wirst ja keine 1000+ Anfragen die Sekunde wegstecken müssen oder?
Nein, das nicht. :)
Allerdings rechne mit der Zeit schon mit gut 1000 Einträgen, wenn nicht deutlich mehr. Wenn es bei mir im test mit einem Dutzend Einträgen vielleicht auch noch keinen merklichen Unterschied macht, so könnte dies bei 1 000 (oder meinetwegen auch 10 000) Einträgen schon ganz anders aussehen.
 
Jetzt bin ich gerade verwirrt :D
Ich glaube ich hatte es falsch verstanden, aber müsste denn nicht nur ein LIKE %wert% reichen?

Und bodo92 meinte nicht die einträge, also bei Einträge kannst du wohl Millionen haben, sondern Anfragen. Oder nicht? Und ich denke mal nicht das du 1000 Anfragen in der Sekunde an die DB schickst
 
Jetzt bin ich gerade verwirrt :D
Ich glaube ich hatte es falsch verstanden, aber müsste denn nicht nur ein LIKE %wert% reichen?
Mit nem Like würde ich doch auch andere Werte selektieren nicht, also z.B. bei der Suche ABC auch ABCD? Und das ist unerwünscht. Weiterhin wären meine Sorgen um Ressourcen, die ich jetzt schon habe, dann erst ein richtiges Problem, denn ein like benötigt doch viel mehr Rechenleistung als ein einfaches =.
Und bodo92 meinte nicht die einträge, also bei Einträge kannst du wohl Millionen haben, sondern Anfragen. Oder nicht? Und ich denke mal nicht das du 1000 Anfragen in der Sekunde an die DB schickst
Das ist mir schon klar,:rolleyes: das habe ich ja mit dem Kommi
Nein, das nicht. :)
schwerzhaft ausgeschlossen, dass 1000 Anfragen die Sekunde gemacht werden.

Könnte es sein, dass du etwas müde bist? :D
 
Werbung:
Moin,
wenn die Collation der Spalte CI ist, er aber trotzdem auf Groß und Kleinschreibung achtet, kann die Spalte nur noch das BINARY Attribute haben. (Nicht die Collation der Tabelle, die ist dabei wurscht)
Ein SELECT * FROM test WHERE name='hAnS' findet somit auch Hans.

MfG
 
Hallo,

bin mir jetzt nicht sicher, hatte aber immer das Problem das je nach dem ich welche Kollation benutzt habe, probleme mit zb ä und a hatte und jetzt bei der anderen aber mit der Groß und kleinschreibung.


Ich mach es jetzt so, das ich alle anfragen von php kleinschreiben lasse und in die SQL abfrage dann WHERE lower( xyz ) schreibe.

Funktioniert bis jetzt ganz gut.


Falls es schon jemand geschrieben hat, Sorry hab jetzt nicht alles durchgelesen.

Gruß Alex
 
Werbung:
Zurück
Oben