SELECT * FROM `users` WHERE `birthday` >= NOW() LIMIT 1 Müsste gehen, wobei ich mir nicht sicher bin, ob NOW() seine Aufgabe richtig erfüllt.
Hi,
ich möchte aus einer Tabelle in der Usernamen und ihre Geburtsdaten abgelegt sind den User bestimmen, der als nächster Geburtstag hat.
Fällt euch ne schöne Abfrage ein?
Bsp. für die Tabelle:
Code:CREATE TABLE users ( id int(9) primary key unique not null, username varchar(15) uniquie not null, birthday date);
SELECT * FROM `users` WHERE `birthday` >= NOW() LIMIT 1 Müsste gehen, wobei ich mir nicht sicher bin, ob NOW() seine Aufgabe richtig erfüllt.
ich denke das man die ergebnisse noch sortieren müsste. Nach birthday absteigend.
Gruß Sebastian
Webdesign und viel mehr http://lauff.info
yingiz, deine Wirtschaftsgemeinschaft im Netz - gemeinsam bis zu 60% vom Verkaufspreis oder bis zu 300 € Provisionen verdienen. Jeder profitiert von Jedem! Gemeinsam stark! Jetzt anmelden
HI,
erstmal vielen Dank für eure Antworten.
Aber ich glaube nicht, dass diese Abfragen zu einem Ergebnis führen werden. Schließlich gibt now() immer einen Wert zurück, der > ist als das Geb.Datum.
Bsp.
birthday: 1981-12-09
now() liefert zwar den entsprechenden Monat und Tag, allerdings hängt es am Jahr.
Die Abfrage müsste so konzipiert sein, dass das Jahr unberücksichtigt bleibt.
hmm ja. Das wird in einer Abfrage dann wohl eher schwierig. Und wenn man aus birthday 3 Felder macht?
Gruß Sebastian
Webdesign und viel mehr http://lauff.info
yingiz, deine Wirtschaftsgemeinschaft im Netz - gemeinsam bis zu 60% vom Verkaufspreis oder bis zu 300 € Provisionen verdienen. Jeder profitiert von Jedem! Gemeinsam stark! Jetzt anmelden
Okay,
ich habe eure Anregungen noch mal überdacht und bin zu folgender Lösung gekommen.
Funzt wunderbar.Code:select * from users having DAYOFYEAR(NOW()) < DAYOFYEAR(users.birthday) order by birthday limit 1;
Thx.
wat nich alles funzt
Gruß Sebastian
Webdesign und viel mehr http://lauff.info
yingiz, deine Wirtschaftsgemeinschaft im Netz - gemeinsam bis zu 60% vom Verkaufspreis oder bis zu 300 € Provisionen verdienen. Jeder profitiert von Jedem! Gemeinsam stark! Jetzt anmelden
Wenn ich nun aber nach datum sortiert ausgebe, wird dennoch das Jahr beachtet. (z.B. wird der 2.2.98 vor dem 1.1.99 ausgegeben).
Wie kann man das umgehen?
Vielen Dank,
tommy-p
Phantasie ist wichtiger als Wissen,
denn Wissen ist begrenzt.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)