Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sortowanie w MySQL przy użyciu kolejności według klauzul

Ten samouczek jest częścią serii Naucz się podstawowych zapytań SQL przy użyciu MySQL. W tym samouczku omówimy zapytania SQL służące do sortowania wierszy tabeli w MySQL za pomocą klauzuli ORDER BY ze słowami kluczowymi ASC lub DESC do sortowania w kolejności rosnącej lub malejącej.

Uporządkuj według zapytania

ZAMÓW DO Klauzula może być użyta do sortowania wierszy tabeli w kolejności rosnącej lub malejącej.

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

Objaśnienie zapytania

ORDER BY Klauzula może służyć do sortowania wierszy, określając kolumnę, która ma być używana do sortowania. Możemy również użyć klauzuli ORDER BY z WHERE, aby wykonać operacje filtrowania lub wyszukiwania z sortowaniem.

Musimy określić co najmniej jedną kolumnę za pomocą klauzuli ORDER BY do sortowania wierszy. Możemy również określić kolejność sortowania wierszy w kolejności rosnącej lub malejącej, odpowiednio za pomocą słów kluczowych ASC lub DESC.

Możemy również zastosować wiele operacji sortowania, w których kolejne sortowanie może być zastosowane po wynikach zwróconych przez operacje sortowania, które są pierwsze.

Przykłady

Ta sekcja zawiera przykłady wykonywania sortowania przy użyciu klauzuli ORDER BY z klauzulą ​​WHERE i bez niej. Użyj poniższego zapytania, aby utworzyć tabelę użytkowników zawierającą identyfikator, imię, nazwisko i aktywne kolumny do przechowywania danych użytkownika.

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

Poniższe zapytanie może zostać użyte do wstawienia danych do tabeli użytkowników.

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

Wspomniane powyżej zapytanie wstawi do tabeli 5 wierszy z identyfikatorem, imieniem, nazwiskiem i aktywnymi kolumnami reprezentującymi 5 różnych użytkowników.

Teraz użyjemy klauzuli ORDER BY bez klauzuli WHERE, aby posortować wiersze według kolumn imion lub nazwisk w tabeli użytkowników. Można to zrobić za pomocą klauzuli ORDER BY w MySQL, jak pokazano poniżej.

# 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

Powyższe zapytania wykonują sortowanie w kolejności rosnącej i malejącej za pomocą klauzuli ORDER BY. Teraz posortujemy wiersze z klauzulą ​​WHERE, jak pokazano poniżej.

# 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

W ten sposób możemy użyć klauzuli ORDER BY z klauzulą ​​WHERE i bez niej, aby posortować wiersze tabeli pod kątem określonych kolumn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Importuj plik CSV bezpośrednio do MySQL

  2. Docker:Połącz wiele obrazów

  3. UTF-8 przez całą drogę

  4. Jak sprawdzić, kiedy serwer MySQL/MariaDB został uruchomiony?

  5. Skrypt Bash do wstawiania wartości w MySQL