MySQL Come ottenere l'ordine del numero di riga

Queste indicazioni descrivono come è possibile visualizzare l'ordine / grado del numero di riga per il set di risultati ottenuto dall'esecuzione di una query sql. Viene fornito un esempio con la spiegazione dettagliata.

Facciamo un esempio.

Innanzitutto, creiamo una tabella dei dipendenti nel nostro db.

Query 1.1

mysql> create table employee (id smallint (5),
nome varchar (15), salary smallint (5));

Quindi, inserire i record nella tabella dei dipendenti.

Domanda 1.2

mysql> Inserisci nei valori dipendenti (1, 'jon', 1000);
mysql> Inserisci in valori dipendenti (2, 'darvin', 3500);
mysql> Inserisci in valori dipendenti (3, 'krik', 500);
mysql> Inserisci nei valori dipendenti (4, 'rook', 1500);
mysql> Inserisci nei valori dipendenti (5, 'alex', 100);

Ora mostra tutti i record dalla tabella dei dipendenti.

Domanda 1.3

mysql> select * from employee; + ------ + -------- + -------- + | id | nome | stipendio | + ------ + -------- + -------- + | 1 | jon | 1000 | | 2 | darvin | 3500 | | 3 | krik | 500 | | 4 | torre | 1500 | | 5 | alex | 100 | + ------ + -------- + -------- + 5 righe in set (0,00 secondi)

Ora, recuperiamo tutti i record dalla tabella dei dipendenti ordinati per stipendio.

Query 1.4

mysql> seleziona * dall'ordine dei dipendenti per stipendio; + ------ + -------- + -------- + | id | nome | stipendio | + ------ + -------- + -------- + | 5 | alex | 100 | | 3 | krik | 500 | | 1 | jon | 1000 | | 4 | torre | 1500 | | 2 | darvin | 3500 | + ------ + -------- + -------- + 5 righe in set (0,00 secondi) 

Ora, vogliamo davvero avere una colonna aggiuntiva che verrà eseguita partendo da 1 (prima riga) fino all'ultima riga. Questo è così che possiamo visualizzare l'ordine delle righe nella tabella. Ecco la query.

mysql> set @row_num = 0;
SELECT @row_num: = @row_num + 1 come row_number, id, name, salary FROM employee
ORDINA PER stipendio;

+ ------------ + ------ + -------- + -------- + | row_number | id | nome | stipendio | + ------------ + ------ + -------- + -------- + | 1 | 5 | alex | 100 | | 2 | 3 | krik | 500 | | 3 | 1 | jon | 1000 | | 4 | 4 | torre | 1500 | | 5 | 2 | darvin | 3500 | + ------------ + ------ + -------- + -------- + 5 righe in set (0,00 secondi) 

Ora puoi vedere la colonna aggiuntiva (Row_number) che mostra l'ordine delle righe. Questo è molto utile durante la visualizzazione dei record.

Scaviamo un po 'più a fondo su come funziona la precedente query 1.4 per ottenere l'ordine dei numeri di riga.

set @row_num = 0;

Questo usa @row_num come variabile definita dall'utente per contenere il conteggio delle righe e viene assegnato un valore 0.

SELECT @row_num: = @row_num + 1 come numero_riga

Qui, aumentiamo la variabile @row_num per 1, ogni volta che il id la colonna cambia e manteniamo il valore che aveva nella riga precedente. Ciò manterrà l'incremento della variabile @row_num fino a raggiungere l'ultima riga in id colonna, usando 'Row_number' per l'alias di colonna.