Denna handledning är en del av serien Lär dig grundläggande SQL-frågor med MySQL. I den här handledningen kommer vi att diskutera SQL-frågor för att utföra sortering av tabellraderna i MySQL med hjälp av ORDER BY-satsen med nyckelorden ASC eller DESC för att sortera i stigande eller fallande ordning.
Beställ efter fråga
ORDER By sats kan användas för att utföra sortering på tabellraderna antingen i stigande eller fallande ordning.
# 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;
Frågeförklaring
ORDER BY sats kan användas för att sortera raderna genom att ange kolumnen som ska användas för sortering. Vi kan också använda ORDER BY-satsen med WHERE för att utföra filtret eller sökoperationerna med sortering.
Vi måste specificera minst en kolumn med hjälp av ORDER BY-satsen för att sortera raderna. Vi kan också specificera ordningen för att sortera raderna antingen i stigande eller fallande ordning med hjälp av ASC- respektive DESC-nyckelord.
Vi kan också tillämpa flera sorteringsoperationer där den efterföljande sorteringen kan tillämpas efter resultaten som returneras av sorteringsoperationerna som kommer först.
Exempel
Det här avsnittet ger exempel på hur du utför sortering med hjälp av ORDER BY-satsen med och utan WHERE-satsen. Använd den nedan nämnda frågan för att skapa användartabellen med id, förnamn, efternamn och aktiva kolumner för att lagra användardata.
# 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`));
Den nedan nämnda frågan kan användas för att infoga data i användartabellen.
# 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 );
Den ovan nämnda frågan kommer att infoga 5 rader i tabellen med id, förnamn, efternamn och aktiva kolumner för att representera 5 olika användare.
Nu kommer vi att använda ORDER BY-satsen utan WHERE-satsen för att sortera raderna med förnamn eller efternamnskolumner i användartabellen. Det kan göras med hjälp av ORDER BY-satsen i MySQL som visas nedan.
# 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
Ovannämnda frågor utför sortering i stigande och fallande ordning med hjälp av ORDER BY-satsen. Nu kommer vi att sortera raderna med WHERE-satsen som visas nedan.
# 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å här kan vi använda ORDER BY-satsen med och utan WHERE-satsen för att sortera raderna i tabellen för de specifika kolumnerna.