Béton brut

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.