Mysql
 sql >> Database >  >> RDS >> Mysql

Ordinamento in MySQL usando Order By Clause

Questo tutorial fa parte della serie Learn Basic SQL Query Using MySQL. In questo tutorial, discuteremo le query SQL per eseguire l'ordinamento delle righe della tabella in MySQL utilizzando la clausola ORDER BY con le parole chiave ASC o DESC per ordinare in ordine crescente o decrescente.

Ordine per query

L'ORDINE per La clausola può essere utilizzata per eseguire l'ordinamento delle righe della tabella in ordine crescente o decrescente.

# ORDER BY - Syntax - Default Ascending
SELECT * FROM `table_name` ORDER BY `column_name`;

# ORDER BY - Syntax - Ascending
SELECT * FROM `table_name` ORDER BY `column_name` ASC;

# ORDER BY - Syntax - Descending
SELECT * FROM `table_name` ORDER BY `column_name` DESC;

Spiegazione della query

ORDINA PER La clausola può essere utilizzata per ordinare le righe specificando la colonna da utilizzare per l'ordinamento. Possiamo anche utilizzare la clausola ORDER BY con WHERE per eseguire il filtro o le operazioni di ricerca con ordinamento.

Dobbiamo specificare almeno una colonna usando la clausola ORDER BY per ordinare le righe. Possiamo anche specificare l'ordine per ordinare le righe in ordine crescente o decrescente utilizzando rispettivamente le parole chiave ASC o DESC.

Possiamo anche applicare più operazioni di ordinamento in cui è possibile applicare l'ordinamento successivo in base ai risultati restituiti dalle operazioni di ordinamento che vengono prima.

Esempi

Questa sezione fornisce esempi per eseguire l'ordinamento utilizzando la clausola ORDER BY con e senza la clausola WHERE. Utilizzare la query di seguito menzionata per creare la tabella utente con l'ID, il nome, il cognome e le colonne attive per memorizzare i dati dell'utente.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

La query sotto indicata può essere utilizzata per inserire dati nella tabella utente.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'John', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

La suddetta query inserirà 5 righe nella tabella con id, nome, cognome e colonne attive per rappresentare 5 utenti diversi.

Ora utilizzeremo la clausola ORDER BY senza la clausola WHERE per ordinare le righe utilizzando le colonne nome o cognome della tabella utente. Può essere fatto usando la clausola ORDER BY in MySQL come mostrato di seguito.

# ORDER BY - Ascending
SELECT * FROM `user` ORDER BY `first_name`;
SELECT * FROM `user` ORDER BY `first_name` ASC;

# Result
4 Harsh Upadhyay 1
1 John Smith 1
3 John Ponting 0
2 Rick Jones 1
5 Tajwinder Singh 0


# ORDER BY - Descending
SELECT * FROM `user` ORDER BY `first_name` DESC;

# Result
5 Tajwinder Singh 0
2 Rick Jones 1
1 John Smith 1
3 John Ponting 0
4 Harsh Upadhyay 1


# ORDER BY - Ascending - Multiple
SELECT * FROM `user` ORDER BY `first_name`, `last_name`;

# Result
4 Harsh Upadhyay 1
3 John Ponting 0
1 John Smith 1
2 Rick Jones 1
5 Tajwinder Singh 0

Le suddette query eseguono l'ordinamento in ordine crescente e decrescente utilizzando la clausola ORDER BY. Ora ordineremo le righe con la clausola WHERE come mostrato di seguito.

# ORDER BY - Ascending - Filter active users
SELECT * FROM `user` WHERE `active` = 1 ORDER BY `first_name`;

# Result
4 Harsh Upadhyay 1
1 John Smith 1
2 Rick Jones 1


# ORDER BY - Descending - Filter active users
SELECT * FROM `user` WHERE `active` = 1 ORDER BY `first_name` DESC;

# Result
2 Rick Jones 1
1 John Smith 1
4 Harsh Upadhyay 1

Ecco come possiamo utilizzare la clausola ORDER BY con e senza la clausola WHERE per ordinare le righe della tabella per le colonne specifiche.