• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datensätze nach Anfangsbuchstaben (ABC) ordnen

XraYSoLo

Senior HTML'ler
Hallo zusammen,

ich habe eine Datenbank mit ein paar Hundert Einträgen (hauptsächlich Begriffen), die kategorisch nach dem ABC geordnet werden sollen. Ausschlaggebend soll hier verständlicherweise der Initialbuchstabe sein. Zusätzlich soll über jeder Kategorie noch der entsprechende Buchstabe stehen, so a la:

Code:
INSERT INTO gegenstaende VALUES
(NULL, 'Apfelbaum'),
(NULL, 'Ast'),
(NULL, 'Amalgamfüllung'),
...

Code:
A
Apfelbaum, Ast, Amalgamfüllung, Arsen

B
Buch, Bindemittel, Boxhandschuhe, Bauarbeiter

C
Chemie, China

D
Dach, Dom, Decke, Durchlauferhitzer

usw.

Die Tabelle besteht nur aus einer laufenden ID und dem Begriff.

Wie realisiert man das am besten?

Nils aka XraYSoLo
 
Werbung:
order by substr(wort, 1, 1) asc

Eventuell kannst du noch nach dem Anfangsbuchstaben gruppieren, ist hier aber wohl nicht nötig.

Code:
select
    wort
from
    gegenstaende
order by
    substr(wort, 1, 1),
    gegenstand_id

Alternativ kannst du noch nach dem Anfangsbuchstaben gruppieren und dann mit group_concat die Wörter holen. Halte ich aber für 'ne schlechte Idee.

Im Übrigen ist es auch eine schlechte Idee, HTML-Entities in eine Datenbank zu speichern - mal ganz vom Sortierungsproblem abgesehen.
 
Werbung:
Wozu umwandeln? Die einzigen sinnvollen Entities, die es gibt sind nur &quot; ("), &lt; (<), und &gt; (>). Eventuell auch ' ('). Deswegen ist htmlentities eigentlich eine Funktion, die konkret keinen Nutzen hat. htmlspecialchars vollkommen aus.
 
Zurück
Oben