[MySQL] W jaki sposób dodać kolumnę z numeracją kolejnych rekordów ?

Bazy danych
[MySQL] W jaki sposób dodać kolumnę z numeracją kolejnych rekordów ?

Przy wyświetlaniu listy rekordów czy to na stronie internetowej czy w aplikacji desktopowej z reguły mam numerację rekordów co często ułatwia życie. Jestem za tym, aby tego typu numeracje robić po stronie widoku nie zaś zaprzęgać do tego bazę danych, lecz ile razy przeglądamy bazę danych w konsoli czy kliencie bazodanowym, a numeracja by się przydała ?

Załóżmy że chcemy otrzymać taki widok tabeli.

+----+--------+----------+--------+
| id | imie   | nazwisko | nr     |
+----+--------+----------+--------+
|  9 | Paweł  | Kowalski |      1 |
| 14 | Kasia  | Kowalska |      2 |
| 15 | Jarek  | Kowalski |      3 |
+----+--------+----------+--------+

Oczywiście kolumna „nr” nie istnieje w naszej tabeli, kolumna ta zostanie „dodana” i będzie zawierała numerację. Aby tego dokonać posłużymy się zmiennymi, które służą do przechowywania danych.

Deklaracja zmiennej wygląda następująco:

set @lp=0;

Do takiej zmiennej odwołujemy się w następujący sposób:

SELECT @lp;

Powyższy kod wyświetli wartość zmiennej. Oczywiście możemy także dokonywać operacji arytmetycznych na zmiennych co jest dla nas niezbędne w tym przypadku.

Przykładowe zapytanie listujące zawartość tabeli „osoby” i dodające numerację do niej w kolumnie „nr” może wyglądać następująco.

set @lp=0;
SELECT *, @lp:=@lp+1 AS nr FROM osoby;