Sprawdzanie, który rekord jest pierwszy, drugi a który trzeci z LIMIT

0

Witam,
załóżmy, że mam zapytanie:

SELECT `name`, `surname`, `results` FROM `users` ORDER BY `id` DESC LIMIT 3

To wyświetli mi trzy jakieś tam rekordy(bez znnaczenia zawartości):

Name| Surname | Results
---------------- | -------------------
Jan | Nowak | 100
Adam | Nowak | 100
Andrzej | Nowak | 100

Jak teraz sprawdzić, który pobrany "Nowak" posiada, który numer pobrania?
Konkretnie chciałbym wyświetlić dla: Jan Nowak - numer 1, dla Adam Nowak numer 2, dla Andrzej Nowak - numer 3. W takiej kolejności w jakiej zostaną wyświetleni z bazy. Jak to zrobić?

0

nie napisałeś jaki silnik bazy danych
dla SQL Server będzie to

ROW_NUMBER() OVER (ORDER BY Id)

0

Dzięki za odpowiedź. Oczywiście chodziło mi o MySQL (MariaDB).

0

Ma ktoś jakiś pomysł? Nie ma w MySQL funkcji: ROW_NUMBER()

0

No nie ma, ale można tak:

SELECT @rownum := @rownum + 1 AS rn, `name`, `surname`, `results` FROM `users`, (SELECT @rownum := 0) r ORDER BY `id` DESC LIMIT 3
0

Jak to podstawić do nieco bardziej skomplikowanego zapytania z relacjami?
Mam takie zapytanie, podstawiłem lecz jakoś dziwnie numeruje mi rekordy. Pierwszy: 38, drugi 40, trzeci 47.

SELECT DISTINCT @rownum := @rownum + 1 AS `rn`, a.IMIE, a.NAZWISKO, a.KLUB, b.REZULTAT 
FROM `sportowcy` AS `a` 
JOIN `wyniki` AS `b` 
JOIN `dyscypliny` AS `c` ON b.ID_DYSCYPLINA = '1' AND a.ID_SPORTOWIEC =  b.ID_SPORTOWIEC,
(SELECT @rownum := 0) r ORDER BY a.ID_SPORTOWIEC DESC LIMIT 3

Jak to powinno wyglądać?

0

takie rzeczy to się po stronie wyświetlania robi a nie bazy!

1 użytkowników online, w tym zalogowanych: 0, gości: 1