eromero
20.11.2007, 16:39:59
Mam problem, który dla was nie jest pewnie zbyt trudny do rozwiązania.
Chodzi o to, że mam w MySQLu tablicę w której są wyniki zawodników z biegu. Są tam imiona, nazwiska i czasy. Wśród zawodników jest Jan Kowalski.
Jak powinna wyglądać funkcja MySQL, która podałaby, jakie miejsce zajął ten zawodnik?
Wiem, że trzeba uszeregowac tablicę pod względem czasu, a następnie sprawdzić, w którym miejscu jest Kowalski. Ale jak powinno to wyglądać?
Cezar708
20.11.2007, 16:53:15
nie trzeba szeregować:
SELECT count(*) + 1 AS miejsce_jana_kowalskiego
FROM zawodnicy WHERE czas_przybiegniecia < (SELECT czas_przybiegniecia FROM zawodnicy WHERE zawodnik='jan kowalski')
eromero
23.11.2007, 17:55:04
Dzięki! Działa pięknie

Cytat(Cezar708 @ 20.11.2007, 17:53:15 )

nie trzeba szeregować:
SELECT count(*) + 1 AS miejsce_jana_kowalskiego
FROM zawodnicy WHERE czas_przybiegniecia < (SELECT czas_przybiegniecia FROM zawodnicy WHERE zawodnik='jan kowalski')
A jak zmodyfikować ten kod, aby gdy zawodnik nie startował w danych zawodach podawana była cyfra 0. Obecnie zwracane jest 1, niezależnie czy zawodnik był pierwszy czy wogóle nie startował...
(Ta tabela obejmuje cały cykl zawodów - 6 wyścigów.)
heaven
24.11.2007, 18:30:47
moze tak zadziala ...
SELECT count(*) + (SELECT count(*) FROM zawodnicy WHERE zawodnik='jan kowalski') AS miejsce_jana_kowalskiego
FROM zawodnicy WHERE czas_przybiegniecia < (SELECT czas_przybiegniecia FROM zawodnicy WHERE zawodnik='jan kowalski')