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

Sortering i MySQL ved hjælp af rækkefølge efter klausul

Denne vejledning er en del af serien Lær grundlæggende SQL-forespørgsler ved hjælp af MySQL. I denne øvelse vil vi diskutere SQL-forespørgsler for at udføre sortering af tabelrækkerne i MySQL ved hjælp af ORDER BY-sætningen med nøgleordene ASC eller DESC for at sortere i stigende eller faldende rækkefølge.

Bestil efter forespørgsel

ORDER By klausul kan bruges til at udføre sortering på tabelrækkerne enten i stigende eller faldende rækkefølge.

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

Forespørgselsforklaring

BEstil efter klausul kan bruges til at sortere rækkerne ved at angive den kolonne, der skal bruges til sortering. Vi kan også bruge ORDER BY-sætningen med WHERE til at udføre filteret eller søgeoperationerne med sortering.

Vi skal angive mindst én kolonne ved hjælp af ORDER BY-sætningen for at sortere rækkerne. Vi kan også angive rækkefølgen for at sortere rækkerne enten i stigende eller faldende rækkefølge ved hjælp af henholdsvis ASC- eller DESC-nøgleord.

Vi kan også anvende flere sorteringsoperationer, hvor den efterfølgende sortering kan anvendes efter resultaterne returneret af sorteringsoperationerne, som kommer først.

Eksempler

Dette afsnit giver eksempler på at udføre sortering ved hjælp af ORDER BY-sætningen med og uden WHERE-sætning. Brug nedenstående forespørgsel til at oprette brugertabellen med id, fornavn, efternavn og aktive kolonner til at gemme brugerdata.

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

Nedenstående forespørgsel kan bruges til at indsætte data i brugertabellen.

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

Ovennævnte forespørgsel vil indsætte 5 rækker i tabellen med id, fornavn, efternavn og aktive kolonner til at repræsentere 5 forskellige brugere.

Nu vil vi bruge ORDER BY-udtrykket uden WHERE-udtrykket til at sortere rækkerne ved at bruge fornavn- eller efternavnskolonnerne i brugertabellen. Det kan gøres ved at bruge ORDER BY-klausulen i MySQL som vist nedenfor.

# 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

Ovennævnte forespørgsler udfører sortering i stigende og faldende rækkefølge ved hjælp af ORDER BY-sætningen. Nu vil vi sortere rækkerne med WHERE-sætningen som vist nedenfor.

# 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

Sådan kan vi bruge ORDER BY-sætningen med og uden WHERE-sætningen til at sortere rækkerne i tabellen for de specifikke kolonner.


  1. Hvordan kan jeg liste har samme id-data med while-løkke i PHP?

  2. SQL Pivot med flere kolonner

  3. Fremskynd bulkinsert-operationer med NHibernate

  4. Java SQL-FEJL:Relationstabelnavn eksisterer ikke