Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sortieren in MySQL mit der Order By-Klausel

Dieses Tutorial ist Teil der Reihe Learn Basic SQL Queries Using MySQL. In diesem Tutorial besprechen wir SQL-Abfragen zum Sortieren der Tabellenzeilen in MySQL mithilfe der ORDER BY-Klausel mit den Schlüsselwörtern ASC oder DESC, um in aufsteigender oder absteigender Reihenfolge zu sortieren.

Nach Abfrage sortieren

Die ORDER By -Klausel kann verwendet werden, um die Tabellenzeilen entweder in aufsteigender oder absteigender Reihenfolge zu sortieren.

# 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;

Erklärung der Abfrage

Die ORDER BY -Klausel kann verwendet werden, um die Zeilen zu sortieren, indem die Spalte angegeben wird, die zum Sortieren verwendet werden soll. Wir können auch die ORDER BY-Klausel mit WHERE verwenden, um die Filter- oder Suchoperationen mit Sortierung durchzuführen.

Wir müssen mindestens eine Spalte mit der ORDER BY-Klausel angeben, um die Zeilen zu sortieren. Wir können auch die Reihenfolge angeben, um die Zeilen entweder in aufsteigender oder absteigender Reihenfolge zu sortieren, indem wir die Schlüsselwörter ASC bzw. DESC verwenden.

Wir können auch mehrere Sortieroperationen anwenden, wobei die nachfolgende Sortierung nach den Ergebnissen angewendet werden kann, die von den Sortieroperationen zurückgegeben werden, die zuerst kommen.

Beispiele

Dieser Abschnitt enthält Beispiele zum Sortieren mit der ORDER BY-Klausel mit und ohne WHERE-Klausel. Verwenden Sie die unten aufgeführte Abfrage, um die Benutzertabelle mit den Spalten „ID“, „Vorname“, „Nachname“ und „Aktiv“ zum Speichern von Benutzerdaten zu erstellen.

# 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`));

Die unten genannte Abfrage kann verwendet werden, um Daten in die Benutzertabelle einzufügen.

# 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 );

Die oben erwähnte Abfrage fügt 5 Zeilen in die Tabelle ein, die die Spalten ID, Vorname, Nachname und Aktiv enthalten, um 5 verschiedene Benutzer darzustellen.

Jetzt verwenden wir die ORDER BY-Klausel ohne die WHERE-Klausel, um die Zeilen anhand der Vornamen- oder Nachnamenspalten der Benutzertabelle zu sortieren. Dies kann mit der ORDER BY-Klausel in MySQL erfolgen, wie unten gezeigt.

# 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

Die oben erwähnten Abfragen sortieren in aufsteigender und absteigender Reihenfolge unter Verwendung der ORDER BY-Klausel. Jetzt sortieren wir die Zeilen mit der WHERE-Klausel wie unten gezeigt.

# 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

So können wir die ORDER BY-Klausel mit und ohne die WHERE-Klausel verwenden, um die Zeilen der Tabelle nach bestimmten Spalten zu sortieren.