Wie kann ich einen Index oder ein Order By so hinkrigen das es nich auf Grosskleinschreibung reagiert.
Announcement
Collapse
No announcement yet.
Sortieren ohne berücksichtigung von Grosskleinebuchstaben
Collapse
X
-
Ok, ich nehme mal an, dann keinen (NONE) Zeichensatz. Deine gewünschte Sortierung bekommst Du nur hin, wenn die Datenbank und die [VAR]CHAR Felder mit z.B. dem Zeichensatz ISO8859_1 od. Win1252 erstellt wurden und eine entsprechende Collation (z.B. DE_DE für ISO8859_1 od. PXW_INTL850 für WIN1252) verwendet wird.<br><br>
Etwas mehr über Zeichensätze/Collation und einen Vergleich von ISO8859_1/WIN1252 findest Du in einem von mir verfaßten Dokument (ist schon etwas her). http://www.iblogmanager.com/download/misc/WIN1252_ISO8859_1.zip<br><br>
Thomas
Comment
-
Wenn Du eine Multi-Byte Collation (z.B. DE_DE od. PXW_INTL850) verwendest, derzeit gar nicht. Da bleibt Dir nur der eine Weg übrig, dass Du nämlich eine One-Byte Collation (z.B. ISO8859_1 od. Win1252) verwendest. Probier einfach mal aus, ob für Dich die Collation ISO8859_1 bzw. WIN1252 ebenfalls die gewünschte Sortierreihenfolge zurückgibt. Wenn nicht, und Du trotzdem einen Index drauflegen möchtest, dann kannst Du in einem ORDER BY auch eine andere Collation verwenden, allerdings wird dann kein Index für das ORDER BY verwendet. z.B.
<pre>
SELECT * FROM MYTABLE ORDER BY NAME COLLATE DE_DE;
</pre>
Thoma
Comment
-
Hi,<p>
ich nehme an, dass das Feld mit dem Index das gleiche ist, nachdem Du eine case insensitive Order haben willst.<p>
Warum erzeugst Du nicht ein zusaetzliches Feld, dass nur die ersten 84 Zeichen von einem String aufnimmt, und diese als Grossbuchstaben abspeicherst? Ist von der Performance beim Suchen wohl das schnellste, und loest beide Deiner Probleme.<p>
CU Chri
Comment
Comment