In deze tutorial wordt de MySQL ORDER BY-clausule uitgelegd en het gebruik ervan met zowel de ASC- als de DESC-opties. We zullen dit MySQL statement beschrijven met behulp van eenvoudige voorbeelden.
1. ORDER BY clausule Syntax
2. ORDER BY W/O ASC of DESC
3. ORDER BY DESC
4. ORDER BY Relative Position
5. ORDER BY Two Fields ASC & DESC
Laten we nu elk van de secties een voor een doorlopen.
MySQL ORDER BY Clause
Het MySQL SELECT commando geeft standaard geen gesorteerde resultaat set terug. Dus, om de uitvoer te sorteren, moet je de ORDER BY clausule toevoegen in de SELECT query. We kunnen het volgende bereiken door de ORDER BY-clausule te gebruiken:
- Sorteer records op één/meerdere velden
- Sorteer de rijen op verschillende kolommen in oplopende (ASC) of aflopende (DESC) volgorde.
Hieronder ziet u de syntaxis van de ORDER BY-clausule:
Syntax
# MySQL ORDER BY ClauseSELECT field1, field2,...FROM target_tableORDER BY field1 , field2 ,...
De ORDER BY-clausule voert standaard een sortering in oplopende volgorde uit. De term ASC is een acroniem voor oplopend, terwijl DESC aflopend betekent. Voor DESC moet u dit in uw SELECT query vermelden.
Merkt u op dat u in MySQL zelfs een expressie kunt opgeven met de ORDER BY. Ook, zowel de opties ASC en DESC zijn optioneel voor dit statement.
Hier zijn enkele voorbeeld oefeningen om te oefenen.
MySQL ORDER BY Clause Examples
Laten we eens kijken hoe u de ORDER BY clausule met MySQL SELECT queries kunt gebruiken.
Resolution by gebruiken zonder asc/desc optie
Om dit te demonstreren, laten we eerst een tabel maken met de naam Sample en deze vullen met wat test data.
CREATE TABLE Sample ( sample_id int NOT NULL, sample_name VARCHAR(20), vendor_name VARCHAR(20), sample_size INT );
Volgende, laten we wat dummy data invoegen voor onze testen.
Na dit, moeten we de inhoud van onze Sample tabel controleren. Zie hieronder.
SELECT *FROM Sample;
De uitvoer is als volgt:
Nu gaan we de ORDER BY-clausule toepassen op de “vendor_name” die is opgeslagen. En, we zullen de resultaten set ontvangen van de MySQL database observeren:
SELECT *FROM SampleORDER BY vendor_name;
U krijgt een resultaat met de onderstaande output:
U kunt beoordelen uit de bovenstaande resultaten set dat sorteren vond plaats in de standaard oplopende volgorde.
Sorteren in aflopende volgorde
In dit voorbeeld, zullen we demonstreren de ORDER BY clausule om te sorteren in de aflopende volgorde. Hiervoor moeten we het expliciet specificeren.
Hier is het MySQL statement om in aflopende volgorde te sorteren:
SELECT *FROM SampleORDER BY vendor_name DESC;
De uitvoer van SELECT is:
Sorteren op veld op relatieve positie
Het is mogelijk om MySQL ORDER BY clausule te gebruiken om te sorteren op een veld op een RELATIEVE positie.
Wanneer we kolomnamen opgeven in de SELECT query, staat het eerste veld op positie één, het tweede op twee, enzovoort. Bovendien kunnen we dit feit valideren aan de hand van een voorbeeld.
Hier volgt een SELECT-instructie die velden weergeeft en sorteert op een relatieve positie.
SELECT # pos_1 pos_2 pos_3 pos_4 sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY 4 DESC;
Hier is de resultatenset die u krijgt na het uitvoeren van het bovenstaande commando:
U kunt zien dat MySQL sorteert op sample_size veld dat overeenkomt met de vierde kolom.
ORDER BY gebruiken om te sorteren op twee kolommen
We hadden eerder vermeld dat u ORDER BY op een of meer velden zou kunnen gebruiken. In zo’n geval beschouwt MySQL het eerste veld als primair en het tweede als secundair. Daarom sorteert het eerst de primaire en dan de tweede.
Hence, in dit voorbeeld, zullen we ORDER BY demonstreren op twee kolommen, een veld als ASC, en een andere DESC. Ook moeten we meer records invoegen om te laten zien dat de tweede kolom ook wordt gesorteerd.
U kunt het INSERT statement dat aan het begin hierboven is gegeven negeren en het onderstaande gebruiken.
Nu hebben we een paar rijen met dezelfde leveranciersnamen maar verschillende steekproefgrootten. En, we zullen nu sorteren op basis van vendor_name (primaire) en sample_size (secundaire) velden.
SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC, sample_size DESC;
Deze MySQL verklaring produceert dit resultaat:
U kunt zien dat alle waarden in het primaire veld werden gesorteerd in de oplopende volgorde. En, het is ook duidelijk uit de output dat sorteren (in DESC) vond plaats op de tweede ook.
Nu, laten we eens kijken wat zou het resultaat zijn, hadden we gesorteerd alleen op de naam van de leverancier.
SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC;
Dit commando levert het volgende op:
U kunt aan het bovenstaande resultaat zien dat de rijen van Google en Twitter niet op hun steekproefgrootte zijn gesorteerd.
We hopen dat u zich na het afronden van deze tutorial op uw gemak zult voelen bij het gebruik van de MySQL ORDER BY-clausule. U kunt echter meer oefenen met voorbeelden om vertrouwen te winnen.
Ook, om SQL te leren van nul tot diepgang, lees onze stap voor stap MySQL tutorial.