alphabetische Sortierung mit Umlauten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • alphabetische Sortierung mit Umlauten

    Hallo Forum,
    ich hab 'ne Liste mit Namen, die ich alphabetisch sortiert ausgeben möchte. Die Abfrage dazu lautet:
    SELECT vorname,nachname, nummer FROM autor ORDER BY nachname ASC
    klappt auch.
    Leider sortiert mir MySQL Begriffe mit Umlauten an den Schluss. Z.B. steht "Kohn" vor "Kärner", und das ist ja lexikalisch falsch.
    Weiß jemand Rat, ob es da eine einfache Lösung gibt? Oder muss ich erst alle Namen einlesen lassen, sie dann nach Ersetzung (ü=ue, usw.) umsortieren, und dann wieder zurückübersetzen(was natürlich ungepuffert ziemlich fehleranfällig wäre)?
    Danke schonmal
    Markus

  • #2
    http://www.mysql.com/doc/de/String_functions.html und nach replace suchen (so ganz spontan)
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Danke für prompten Rat,
      leider hilft das nur bedingt, weil in der Namensliste auch Menschen mit tatsächlichen Diphthongen stehen. Bei einer Ersetzung vom Umlaut zum Diphtong und wieder zurück würden die sich dann hinterher auch mit Umlaut schreiben.

      BSP:
      Liste Umsetzung(replace) Rückübersetzung(replace)
      1.Tzaja wird zu Tzaja wird zu Tzaja
      2.Tälemann wird zu Taelemann wird zu Tälemann
      3.Taerjeborg wird zu Taerjeborg wird zu Tärjeborg (<--FALSCH!)

      Gibt es nicht einen Sortierbefehl wie ASC, oder DESC, der auf derartige Sprachbesonderheiten eingeht?
      Zuletzt geändert von lord-ruebe; 06.08.2003, 14:55.

      Kommentar


      • #4
        zweite Spalte ohne Umlaute in der Tabelle erzeugen,
        und diese zum sortieren nutzen
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          was hältst du von
          Code:
          SELECT nachname
          FROM tabelle
          ORDER BY REPLACE(REPLACE(REPLACE(nachname,'ä','ae'),'ö','oe'),'ü','ue) ASC
          ohne garantie

          EDIT:
          oder du sortierst in php mit natcasesort
          Zuletzt geändert von mrhappiness; 06.08.2003, 15:30.
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            genial, danach habe ich schon oft gesucht

            ist perfekt, schön in sql und ohne schnickschnack!!!

            wenns nicht irgendwelche performance nachteile haben sollte biste der held des tages

            gruss, crisdoe

            Kommentar


            • #7
              @mrhappiness:
              Du bist der König.
              Vielen Dank.
              Markus

              Kommentar

              Lädt...
              X