MYSQL sortieren Doppelnamen
MH
- mysql
- php
Moin alle zusammen,
Ich hab mal ne Frage:
Ist es möglich direkt mit MySQL Doppelnamen zu sortieren?
Also ich hab in einer Spalte mit Nachnamen manchmal Namen wie "van der Buhr" oder ähnliches. In einer Liste werden Namen ja immer nach dem letzten Namen sortiert, also nach Buhr und nicht nach van. Ich kann das natürlich mit PHP machen, aber geht das auch irgendwie direkt mit MySQL mit ORDER BY oder so?
Gruß und danke schonmal
MH
Hi,
Ist es möglich direkt mit MySQL Doppelnamen zu sortieren?
gibt es einen Spaltentyp "Doppelname"?
Nein → MySQL kann gar nicht wissen, daß es sich um einen Doppelnamen handelt.
Also ich hab in einer Spalte mit Nachnamen manchmal Namen wie "van der Buhr" oder ähnliches.
Was hat das jetzt mit Doppelnamen zu tun? Doppelnamen sind sowas wie "Müller-Schmied".
In einer Liste werden Namen ja immer nach dem letzten Namen sortiert, also nach Buhr und nicht nach van.
Nö. Das mag in vielen Fällen so sein, aber definitv nicht immer.
Ich kann das natürlich mit PHP machen, aber geht das auch irgendwie direkt mit MySQL mit ORDER BY oder so?
Auch in PHP wird es Dir schwerfallen, automatisch den Teil des Namens zu identifizieren, nach dem sortiert werden soll - ist ja nicht notwendigerweise der letzte.
Oder sollte ein O'Sullivan bei S zu finden sein? Oder eher bei O? Ein McDonald unter D oder M?
Oder ein Herr von Neuschwanstein zu Herrenchiemsee? Bei N oder H?
Oder …
Es gibt sehr viele mögliche Varianten …
cu,
Andreas a/k/a MudGuard
Tach!
Es gibt sehr viele mögliche Varianten …
Man löst das oftmals so, dass man eine Sortierspalte hinzufügt, in der der für die Sortierung relevante Namensteil eingetragen wird.
dedlfix.
Hi,
Es gibt sehr viele mögliche Varianten …
Man löst das oftmals so, dass man eine Sortierspalte hinzufügt, in der der für die Sortierung relevante Namensteil eingetragen wird.
Kommt halt auch drauf an, wo die Namen herkommen. Wenn Kunden ihren Namen selbst eingeben, bringt es wenig, die dazu aufzufordern, den Sortierspaltenwert einzugeben, weil die nicht wissen, was damit passieren wird …
Und je nach Menge der Daten ist eine manuelle Nachbearbeitung ggf. auch sehr aufwendig.
cu,
Andreas a/k/a MudGuard
@@MudGuard
In einer Liste werden Namen ja immer nach dem letzten Namen sortiert, also nach Buhr und nicht nach van.
Nö. Das mag in vielen Fällen so sein, aber definitv nicht immer.
Und nicht überall. Im Amerikanischen wird man Steve Van Zandt (ja, mit großem V) unter V finden, im Deutschen wird man Ludwig van Beethoven unter B finden.
LLAP 🖖
Hello,
die Sortierung ist immer Geschmackssache, bzw. amtlich festgelegt, was aber wohl so ziemlich das Gleiche sein dürfte ;-P
In DE wurde sie wohl wesentlich beeinflusst von der Sortierung in Telefonbüchern und ist festgelegt in DIN 5007-ff.
Wie ich kürzlich vernahm, soll in Island das Telefonbuch nach "Vorname, Titel, Nachname, Zusatz" sortiert sein. Ich habe es noch nicht nachgeprüft.
Nachweisbare Sortierungen gibt es schon seit 10 v. Chr.
Du könntest versuchen, Dir eine Funktion zu erstellen, die wahlweise nach dem ersten oder dem letzten Teilstring beginnt zu sortieren, also entweder
111111 2222 333 4444 -> 4444 111111 2222 333
oder
111111 2222 333 4444 -> 111111 2222 333 4444
Guck z. B. mal bei AVM, wie das für das Telefonbuch in der Fritzbox machen. Das funktioniert meistens ganz gut.
Grundsätzlich sollte der Datensatz aber in seine logischen Bestandteile zerlegt werden, also atomar gespeichert werden. also z. B.:
Liebe Grüße
Tom S.