Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   MySQL Sortierung deutsche Umlaute (https://www.delphipraxis.net/183674-mysql-sortierung-deutsche-umlaute.html)

luisk 27. Jan 2015 17:55

Datenbank: MySQL • Version: 5.0.21 • Zugriff über: ADO

MySQL Sortierung deutsche Umlaute
 
Hallo,
wie kann man über Order By erreichen, dass z.B. Ä gleichwertig mit A sortiert wird ?
Kennt jemand den Zusatz zu Order By ?

himitsu 27. Jan 2015 18:03

AW: MySQL Sortierung deutsche Umlaute
 
Indem man dem MySQL sagt was für eine Kodierung die gewünschte Spalte hat und wie sie sortiert werden soll? :stupid:

http://dev.mysql.com/doc/refman/5.5/...-charsets.html

luisk 27. Jan 2015 18:06

AW: MySQL Sortierung deutsche Umlaute
 
und wie sieht dann das Order By Statement aus ?

DeddyH 27. Jan 2015 18:08

AW: MySQL Sortierung deutsche Umlaute
 
http://dev.mysql.com/doc/refman/5.0/...t-collate.html

himitsu 27. Jan 2015 18:19

AW: MySQL Sortierung deutsche Umlaute
 
Zitat:

Zitat von luisk (Beitrag 1287976)
und wie sieht dann das Order By Statement aus ?

Ganz normal halt (
SQL-Code:
ORDER BY feldname
), da die Definition ja bereits im Feld steckt.

Außer das Feld wurde nicht richtig deklariert und man muß nun im ORDER-BY den Zeichensatz casten (siehe DeddyH).



Aber ich würde eher zu Ersterem raten.
SQL-Code:
CREATE TABLE .... xxx VARCHAR(length) [CHARACTER SET charset_name] [COLLATE collation_name]

http://dev.mysql.com/doc/refman/5.1/...ate-table.html

Jumpy 28. Jan 2015 08:01

AW: MySQL Sortierung deutsche Umlaute
 
Die anderen Antworten sind sicher die sinnvolleren, aber da du nach dem OrderBy fragst geht je nach DBMS auch sowas:

Order By Replace(Feldname,'Ä','A')

jobo 28. Jan 2015 08:38

AW: MySQL Sortierung deutsche Umlaute
 
Zitat:

Zitat von Jumpy (Beitrag 1288011)
Die anderen Antworten sind sicher die sinnvolleren, aber da du nach dem OrderBy fragst geht je nach DBMS auch sowas:

Order By Replace(Feldname,'Ä','A')

Was dann aber einen vielleicht vorhandenen Index unbrauchbar machen würde. Also geht, aber langsam.

p80286 28. Jan 2015 11:03

AW: MySQL Sortierung deutsche Umlaute
 
Zitat:

Zitat von jobo (Beitrag 1288014)
Was dann aber einen vielleicht vorhandenen Index unbrauchbar machen würde. Also geht, aber langsam.

Das "langsam" muß aber nicht unbedingt stattfinden, es ist wohl eher von der Serverkapazität abhängig.

Gruß
K-H

mkinzler 28. Jan 2015 11:28

AW: MySQL Sortierung deutsche Umlaute
 
Zitat:

Zitat von p80286 (Beitrag 1288037)
Zitat:

Zitat von jobo (Beitrag 1288014)
Was dann aber einen vielleicht vorhandenen Index unbrauchbar machen würde. Also geht, aber langsam.

Das "langsam" muß aber nicht unbedingt stattfinden, es ist wohl eher von der Serverkapazität abhängig.

Gruß
K-H

Verglichen mit der Suche über einen passenden Index wird es aber meistens langsamer sein.

p80286 28. Jan 2015 11:48

AW: MySQL Sortierung deutsche Umlaute
 
"Suche"? wenn ich mich richtig erinnere, ging's um das Sortieren der Ausgabe?

Gruß
K-H

baumina 28. Jan 2015 11:53

AW: MySQL Sortierung deutsche Umlaute
 
Ist doch egal ob Suche oder Sortierung. Eine Datenbank kann entweder einen Index verwenden oder eben nicht. Ersteres ist immer der schnellere Weg.

Jumpy 28. Jan 2015 12:39

AW: MySQL Sortierung deutsche Umlaute
 
Zitat:

Zitat von baumina (Beitrag 1288049)
Ersteres ist immer der schnellere Weg.

Ich plapper jetzt nur nach, was ich hier in anderen Threads und Blogs zur SQL-Optimierung glaube gelernt zu haben: So pauschal kannst du die Aussage nicht stehen lassen, auch wenn sie oft richtig ist. So wie ich das verstanden habe gibt es auch Fälle, wo ein Index nicht hilft, evtl. sogar kontraproduktiv ist.

mkinzler 28. Jan 2015 12:47

AW: MySQL Sortierung deutsche Umlaute
 
Ein Index kostet beim Einfügen, Löschen und ggf auch beim Ändern eines Datensatzes. Wenn also oft geschrieben und selten gelesen wird oder wenn extrem wenig Datensätze vorhanden sind kann man auf ihn verzichten. Im Normalfall hat man aber eine gewisse Anzahl von datensätzen und liest öfterst als man ändeert, dann sind Indizes sinnvoll.

p80286 28. Jan 2015 13:48

AW: MySQL Sortierung deutsche Umlaute
 
Der Index ist immer dann sinnvoll wenn gesucht wird und die Ergebnismenge wesentlich kleiner als die Gesamtmenge ist. Wenn die Datenbank als Blackbox für Datensammlung (log) genutzt wird, ist der Index unnötig bzw. kontraproduktiv. Was das Einfügen der Datensätze angeht, solange sichergestellt ist, das keine doppelten Datensätze in eine Tabelle eingefügt werden, kann man auf den Index verzichten. Dies kann auch für den Import bzw. den Initialen Aufbau der DB gelten. Für Adresssammlungen, Kundenkarteien also die klassischen Anwendungen einer DB ist der Verzicht auf Indices im Normalbetrieb meist nicht empfehlenswert. Im Gegenteil, wer an den Indices spart beschränkt die Suchleistung der DB unnötig.

Gruß
K-H

himitsu 28. Jan 2015 19:29

AW: MySQL Sortierung deutsche Umlaute
 
Zitat:

Zitat von p80286 (Beitrag 1288047)
"Suche"? wenn ich mich richtig erinnere, ging's um das Sortieren der Ausgabe?

Suchen/Filtern = alle Werte mit einem externen Wert vergleichen

Sortieren = quasi alle Werte mit allen anderen Werten vergleichen (lässt sich zwar optimieren, aber es sind dennoch mehr Vergleiche, wie beim Suchen)


Im besten Fall ist der Index bereits schon so oder rückwärts sortiert, wie man es benötigt, dann könnte der Index direkt für die Sortierung verwendet werden und man braucht garnichts mehr zu vergleichen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz