Dessa riktningar går igenom hur man kan visa radenummer ordning / rank för resultatuppsättning som erhållits från att utföra en SQL-fråga. Ett exempel med genomgångsförklaring finns.
Låt oss gå igenom ett exempel.
Låt oss först skapa en anställd tabell i vår db.
Fråga 1.1
mysql> skapa bord anställd (id smallint (5),
namn varchar (15), lön smallint (5));
Sätt sedan in poster i anställdabellen.
Fråga 1.2
mysql> Infoga medarbetarnas värden (1, 'jon', 1000);
mysql> Infoga medarbetarnas värden (2, 'darvin', 3500);
mysql> Infoga medarbetarnas värden (3, 'krik', 500);
mysql> Infoga i anställningsvärden (4, 'rook', 1500);
mysql> Infoga medarbetarnas värden (5, 'alex', 100);
Visa nu alla poster från anställd tabellen.
Fråga 1.3
mysql> välj * från anställd; + ------ + -------- + -------- + | id | namn | lön | + ------ + -------- + -------- + | 1 | jon | 1000 | | 2 | darvin | 3500 | | 3 | krik | 500 | | 4 | rook | 1500 | | 5 | alex | 100 | + ------ + -------- + -------- + 5 rader i set (0.00 sek)
Nu, låt oss hämta alla poster från anställda bord sorterade efter lön.
Fråga 1.4
mysql> välj * från anställd order efter lön; + ------ + -------- + -------- + | id | namn | lön | + ------ + -------- + -------- + | 5 | alex | 100 | | 3 | krik | 500 | | 1 | jon | 1000 | | 4 | rook | 1500 | | 2 | darvin | 3500 | + ------ + -------- + -------- + 5 rader i set (0.00 sek)
Nu vill vi verkligen ha en extra kolumn som kommer att springa från början vid 1 (första raden) till sista raden. Det här är så att vi kan visa radordningen i tabellen. Här är frågan.
mysql> set @row_num = 0;
SELECT @row_num: = @row_num + 1 som radnummer, id, namn, lön FROM anställd
Beställa av lön;
+ ------------ + ------ + -------- + -------- + | row_number | id | namn | lön | + ------------ + ------ + -------- + -------- + | 1 | 5 | alex | 100 | | 2 | 3 | krik | 500 | | 3 | 1 | jon | 1000 | | 4 | 4 | rook | 1500 | | 5 | 2 | darvin | 3500 | + ------------ + ------ + -------- + -------- + 5 rader i uppsättning (0,00 sek)
Nu kan du se ytterligare kolumnen (ROW_NUMBER) som visar radordern. Detta är mycket användbart när du visar posterna.
Låt oss gräva lite djupare på hur ovanstående fråga 1.4 fungerar för att få radnummerorder.
set @row_num = 0;
Detta använder @row_num som användardefinierad variabel för att hålla radräkningen och tilldelas ett värde 0.
SELECT @row_num: = @row_num + 1 som radnummer
Här ökar vi variabeln @row_num med 1, varje gång när id kolumnändringar och vi håller värdet det hade i föregående rad. Detta fortsätter att öka variabeln @row_num tills den når sista raden i id kolumn med användning av 'ROW_NUMBER' för kolumnalias.