Archiv verlassen und diese Seite im Standarddesign anzeigen : mySQL - LIKE "%UMLAUT%" gibt nur Schmarrn her... :(
sticky bit
12.01.2003, 16:27
Also hab in etwa so nen Query:
SELECT FIELD FROM TABLE WHERE FIELD LIKE "%STRING%";
Wenn ich als String jetzt meinet wegen ein "e" habe ist alles prima, er liefert mir alles wo ein "e" dabei ist auch bei anderen Buchstaben(kombinationen) ohne Umlaute gibt es keine Probleme. Aber sobald ich nach nem Umlaut oder sz querien Will liefert er nur noch Müll, entweder gar nichts oder Felder wo gar keines der gesuchten Zeichen vorkommt...
Das Problem besteht sowohl bei dem mysql.exe Client wie auch phpmyAdmin und anderen PHP Skripten, ich geh also davon aus, das von der Clientseite aus alles richtig ist...
Was muss ich da machen, muss ich mySQL erst lokale Zeichensätze beibringen oder bin ich zu blöd oder wie?
Hi!
Ich denke das hast Du gesucht:
http://mysql-faq.sourceforge.net/tables3.html
.harl
sticky bit
12.01.2003, 18:30
Naja, war Anfangs vielversprechend der Link, aber es geht trotzdem nicht, hab den mySQL-Server mit mysqld --console --default-character-set=german1 angeworfen und es wieder versucht, der selbe Blödsinn...
Hast Du mal ein paar Beispiel-SQLs parat?
z.B.
SELECT FIELD FROM TABLE WHERE FIELD LIKE '%ö%';
geht bei mir.
Evtl. wäre gleich ein ganzes Codesnippet nicht schlecht falls Dir der Escape Character in die Quere kommt.
grüße,
.harl
sticky bit
13.01.2003, 16:58
Na ich habs eben versucht runter zu reduzieren und in Einzel-Probleme zu zerlegen (des eigentliche PHP Skript) und bin im Endeffeckt dann beim mySQL-Querie gelandet der nicht geht, und zwar ganz einfach testweise:
SELECT FIELD FROM TABLE WHERE FIELD LIKE "%ü%";
SELECT FIELD FROM TABLE WHERE FIELD LIKE '%ü%';
(Für 'ü' kann auch 'ö', 'ä' oder 'ß' eingesetzt werden Ergebnis ist das gleiche...)
Beide liefern zwar die Felder mit Umlauten, neben denen aber ne Reihe weiterer Felder mit den Zeichen '[', ']', '=', '/' und ansonsten alphpanumerischen Zeichen (a .. z, A .. Z, 0 .. 9) Ist wie ein Post im Board mit den Square-Bracket-Container-Codes. Die Testdatenfelder mit nur jeweils einem der Sonderzeichen findet er hingegen nicht, das habe ich ausprobiert um zu sehen ober vielleicht eines der Zeichen für ein Umlaut hält, ist aber nicht so...
Also in dem blossen Query an den mySQL-Server via phpMyAdmin und gar den mitgelieferten mySQL-Client (ich dachte zuerst, dass PHP das vielleicht automatisch codiert und da das Problem liegen könnte und habs deshalb auch noch mal mit dem Ding ausprobiert, mit genau dem selben Ergebnis...) werd ich wohl kaum über Escape-Chars purzeln? /me sieht zumindest keine...
Welche MySQL Version hast Du denn (3.23.5x?) -
bzw. es schon mal mit 4.x probiert?
grüße,
.harl
sticky bit
15.01.2003, 16:14
3.23.51 hab ich lokal. Aber es ist remote auf dem eigentlichen Zielsystem der gleiche Mist und auf das kommt es im Endeeffekt an, müsste mit der Version jetzt lügen, aber ich kann sie eh nicht ändern... :(
Hm,
wenn Du es darfst würde ich an deiner Stelle wahrscheinlich einfach generell alle Umlaute in der Datenbank ersetzen (ala ä = ae, Ä = Ae, etc.)und über ein PHP-include die Umlaute vor der Darstellung innerhalb der Seite wieder ändern. Quick & dirty.
Grüßle,
.harl
4.x nicht probieren solangs nicht als stabil freigegeben ist, hab da sehr schlechte Erfahrungen gemacht...
Cyberangel
15.01.2003, 20:35
Sag mal.. Du erwaehnst die ganze Zeit LIKE .. mich wuerde mal interessieren was passiert wenn Du expliziet nach dem Wort suchst oder REGEXP einsetzt?!
Wenn ich det weiss frage ich morgen mal einen DBA... vielleicht kann der Dir die Antwort geben..
Original geschrieben von RFC822
4.x nicht probieren solangs nicht als stabil freigegeben ist, hab da sehr schlechte Erfahrungen gemacht...
:t Aber wenn er die Funktionalität doch braucht - auf der MySQL Homepage lassen einige Kommentare der Entwickler zumindest darauf hoffen.
Grüßle,
.harl
Fledermaus
20.06.2003, 13:21
Hallo,
ich steh momentan vor dem selben Problem...
Was mich da nur wundert, ist, dass PHPAmin
wieder richtig darstellt, und beim Eintragen
von Umlaute enthaltenden Texten ebenfalls
nicht mosert.
Wie kommt es, dass PHPMyAdmin die Umlaute
wieder richtig darstellt und richtig in die DB
einträgt?
Wenn ich die Datenbank in der Konsole abfrage
erscheinen Allerdings für die Umlaute irgendwelche
Ersatzzeichen... (für "ü" z.B. ³).
Nico
Fledermaus
20.06.2003, 14:49
Ich stelle gerad fest: Dieses Problem tritt nur beim folgenden Query auf:
select ... from ... where ...='wortmitumlaut'
Wenn ich aber Einträge aus der DB lese, kann er die Umlaute fehlerfrei ausgeben.
Ich muss aber nach Wörtern mit Umlauten suchen können.
Was kann ich tun?
Nico