Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Sortierte Abfrage inkl. Umlaute

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von keine_frage_ist_zu_dumm, 24 März 2013.

  1. keine_frage_ist_zu_dumm

    keine_frage_ist_zu_dumm Neuer Benutzer

    Hallo liebe Profis :),

    ich habe folgendes Problem, zu dem ich über die Suche keine wirkliche Hilfe gefunden habe, wahrscheinlich weil jeder "gelernte" die Lösung schon in der Grundausbildung erhält.

    Ich nutze folgende Abfrage, um Daten aus einer SQL-Datenbank (Version 4) auszulesen:

    SELECT Name, PLZ, Ort FROM `Tabelle1` WHERE Name LIKE '%A%' ORDER BY Name

    Die sortierte Ausgabe sieht dann wie folgt aus:

    AAA
    ZAA
    ÜAA

    Natürlich hätte ich aber den Namen, der mit Ü beginnt gerne in der Mitte stehen. Als gedachte Lösung habe ich gelesen, dass man COLLATE benutzen kann. Vielleicht habe ich den Befehl falsch verstanden oder benutze diesen falsch, denn wenn ich die Abrage wie nachfolgend erweitere, ergibt die Suche gar keine Treffer mehr:

    SELECT Name, PLZ, Ort FROM `Tabelle1` WHERE Name LIKE '%A%' ORDER BY Name COLLATE latin1_german2_ci

    Für Hilfe bin ich dankbar, bitte mit Lösung, die ich Copy/Pasten kann, da mein Wissen leider nur sehr rudimentär ist...
     
  2. akretschmer

    akretschmer Datenbank-Guru

    MySQL Version 4?

    Bevor wir weiterreden: installier eine aktuelle Version. 4 ist außerhalb der supporteten Lifetime. In 5.1 funktioniert es:


    Code:
    Server version: 5.1.67 Source distribution
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> create table foo (name text);
    Query OK, 0 rows affected (0.06 sec)
    
    mysql> insert into foo values ('AAA');
    Query OK, 1 row affected (0.06 sec)
    
    mysql> insert into foo values ('ZAA');
    Query OK, 1 row affected (0.06 sec)
    
    mysql> insert into foo values ('ÜAA');
    Query OK, 1 row affected (0.06 sec)
    
    mysql> select * from foo order by name;
    +------+
    | name |
    +------+
    | AAA  |
    | ÜAA |
    | ZAA  |
    +------+
    3 rows in set (0.06 sec)
    
    Und bei der Gelegenheit gleich drüber nachdenken, ob es wirklich MySQL sein soll....

    Andreas
     
  3. keine_frage_ist_zu_dumm

    keine_frage_ist_zu_dumm Neuer Benutzer

    Hallo,

    vielen Dank für die Antwort. Ich habe eine Datenbank in der Version 5.0 angelegt (höher wird vom Provider wohl nicht unterstützt) und es funktioniert auf Anhieb.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Na fein. 5.0 ist auch schon alt, naja. 4er gibt es bei uns gar nicht mehr, die letzten haben wir vor 1 Jahr oder so abgeschalten.

    Andreas
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden