MYSQL-Abfrage des Anfangsbuchstabens einer Spalte
wuscheck
- datenbank
0 fastix®0 Tobias Kloth
Hallo,
ich würde gerne akkumuliert die Anfangsbuchstaben aller Nachnamen, die in meiner MYSQL-DB gespeichert sind, ausgeben.
Beispiel:
DB-Inhalt in der Spalte Name:
Meier
Mayer
Maier
Nordmann
Schulz
Ausgabe:
M
N
S
Any ideas?
Gruss
wuscheck
Moin!
Any ideas?
Ja!
http://dev.mysql.com/doc/refman/4.0/de/string-functions.html hilft Dir.
Komplett sieht das dann so aus:
SELECT DISTINCT LEFT(spalte
,1) AS Buchstaben
FROM Tabelle
ORDER BY Buchstaben
;
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo wuscheck,
Any ideas?
sowas:
SELECT SUBSTRING(name,1,1) as anfang FROM tabelle GROUP BY anfang
vielleicht?
Grüße aus Nürnberg
Tobias
Moin!
SELECT SUBSTRING(name,1,1) as anfang FROM tabelle GROUP BY anfang
Hm. Ich hätte ja jetzt erwartet, dass meine Abfrage deutlich schneller wäre aber nach mehrmaligen Testen sind die Ergebnisse eher zufällig verteilt. Scheinbar wird die Abfrage intern optimiert.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
yo,
Hm. Ich hätte ja jetzt erwartet, dass meine Abfrage deutlich schneller wäre aber nach mehrmaligen Testen sind die Ergebnisse eher zufällig verteilt. Scheinbar wird die Abfrage intern optimiert.
sowohl GROUP BY als auch DISTINCT bzw. ORDER BY sind letztlich sortierungen, die das dbms ausführt. auch sollte immer ein full-scan ausgeführt werden. insofern sehe ich wenig interne optimierungsmöglichkeiten. aber deine version ist meiner meinung nach die "sauberere", zumal es dabei auch explizit eine sortierung durch ORDER BY gibt.
Ilja