Numerowanie wierszy w MySQL-u
2008-04-29
Stanąłem przed prostym problemem. Mam trzy tablice: jedna zawierała definicje galerii, druga informacje, ostatnia elementy galerii. Chciałem wyświetlić galerie dla informacji. Odnośniki musiały być ponumerowane. Czytając z tablicy pośredniczącej miałem tylko dwa klucze — galleryId i eventId. Postanowiłem sprawdzić, czy w MySQL-u można zastosować pewną prostą sztuczkę, która pozwoli mi uzyskać numery wierszy wypisanych z zapytania.
Poprzednio zapytanie wyglądało tak:
SELECT galleryId FROM galleryEvents WHERE eventId = 10;
Otrzymywałem: 3, 5 i 9. Wyświetlanie odnośników jako 3, 5 i 9 zamiast 1, 2 i 3 było głupie. Zmodyfikowałem więc zapytanie tak.
SET @rowCount = 0;
SELECT galleryId, @rowCount := @rowCount + 1 AS rowCount FROM galleryEvents WHERE eventId = 10;
Dzięki temu zapytanie wykonuje inkrementacje na wcześniej zainicjalizowanej zmiennej. Mała rzecz, a cieszy.