5 messages in com.mysql.lists.mysql-deRe: SQL-Ausdruck für "Stringzerlegung"| From | Sent On | Attachments |
|---|---|---|
| Ulrich Kretschmer | 13 Aug 2005 15:54 | |
| Rene Fertig | 14 Aug 2005 10:30 | |
| Ulrich Kretschmer | 15 Aug 2005 15:52 | |
| Rene Fertig | 16 Aug 2005 13:29 | |
| Sebastian Mendel | 16 Aug 2005 14:43 |
| Subject: | Re: SQL-Ausdruck für "Stringzerlegung"![]() |
|---|---|
| From: | Sebastian Mendel (lis...@sebastianmendel.de) |
| Date: | 08/16/2005 02:43:34 PM |
| List: | com.mysql.lists.mysql-de |
Ulrich Kretschmer schrieb:
Am Sonntag, 14. August 2005 19:31 schrieb Rene Fertig:
Was sonst eine For-Schleife macht, macht dir in SQL eine Zahlen-Tabelle:
create table Zahlen ( Z int unsigned); insert into Zahlen values (1),(2),(3),(4); (wenn du mehr Vornamen hast, brauchst du halt mehr Zahlen)
Dann kannst du mit SUBSTRING_INDEX das Feld aufspalten:
select distinct Nn, SUBSTRING_INDEX(SUBSTRING_INDEX(Vn,' ',Z),' ',-1) as Vname from Namen, Zahlen;
Hallo, vielen Dank! meine vorläufig endgültige Abfrage schaut jetzt so aus:
SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(p.firstname,' ',h.helpnumber),' ',-1) AS Vorname FROM tng_people AS p, tng_local_helpnumbers AS h ORDER BY Vorname;
Eine Variante der Abfrage für die Auswertung der Häufigkeit:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(p.firstname,' ',h.helpnumber),' ',-1) AS Vorname, COUNT(*) AS Anzahl FROM tng_people AS p, tng_local_helpnumbers AS h GROUP BY Vorname ORDER BY Anzahl DESC;
Was glaubst du eigentlich hiermit zu zählen? Die Häufigkeit der Vornamen jawohl bestimmt nicht ...
Wenn du in der vorherigen Abfrage mal das DISTINCT weg läst wirst du sehen was du wirklich zählst ...
wenn dann schon eher so:
SELECT SUBSTRING_INDEX( SUBSTRING_INDEX( p.firstname, ' ', h.nr ), ' ', -1 ) AS Vorname, COUNT( DISTINCT id ) FROM tng_people AS p, ( SELECT 1 AS nr UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 ) AS h GROUP BY Vorname
-- Sebastian Mendel
www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com www.sf.net/projects/phpdatetime www.sf.net/projects/phptimesheet




