Denna handledning förklarar MySQL ORDER BY-klausulen och dess användning med både ASC- och DESC-alternativen. Vi beskriver detta MySQL-statement med hjälp av enkla exempel.

1. ORDER BY-klausulen Syntax
2. ORDER BY W/O ASC eller DESC
3. ORDER BY DESC
4. ORDER BY Relativ position
5. ORDER BY Two Fields ASC & DESC

Låt oss nu gå igenom varje avsnitt ett efter ett.

MySQL ORDER BY Clause

MySQL SELECT-kommandot returnerar inte en sorterad resultatuppsättning som standard. För att sortera resultatet måste du därför lägga till ORDER BY-klausulen i SELECT-frågan. Vi kan uppnå följande genom att använda ORDER BY-klausulen:

  • Företag sortering av poster efter ett enda/flera fält
  • Sortera raderna efter distinkta kolumner i stigande (ASC) eller fallande (DESC) ordning.

Nedan visas syntaxen för ORDER BY-klausulen:

Syntax

# MySQL ORDER BY ClauseSELECT field1, field2,...FROM target_tableORDER BY field1 , field2 ,...

Order BY-klausulen utför som standard sortering i stigande ordning. Termen ASC är en akronym för ökande medan DESC betyder fallande. För DESC måste du nämna det i din SELECT-fråga.

Observera att du även kan ange ett uttryck med ORDER BY i MySQL. Dessutom är både alternativen ASC och DESC valfria för det här uttalandet.

Här finns några exempelövningar för övning.

MySQL ORDER BY-klausulen Exempel

Låt oss se hur man använder ORDER BY-klausulen med MySQL SELECT-förfrågningar.

Användning av order by utan asc/desc-alternativet

För att demonstrera ska vi först skapa en tabell som heter Sample och fylla den med några testdata.

CREATE TABLE Sample ( sample_id int NOT NULL, sample_name VARCHAR(20), vendor_name VARCHAR(20), sample_size INT );

Nästan ska vi infoga några dummy-data för vår testning.

Nästan måste vi kontrollera innehållet i vår tabell Sample. Se nedan.

SELECT *FROM Sample;

Den har följande utdata:

Nu ska vi använda ORDER BY-klausulen på filen ”vendor_name”. Och vi observerar den resultatuppsättning som vi får från MySQL-databasen:

SELECT *FROM SampleORDER BY vendor_name;

Du får ett resultat som visar nedanstående utdata:

Du kan bedöma från ovanstående resultatuppsättning att sorteringen ägde rum i den uppåtgående standardordningen.

Sortera i fallande ordning

I det här exemplet demonstrerar vi ORDER BY-klausulen för att sortera i fallande ordning. För detta måste vi ange den explicit.

Här är MySQL-anvisningen för att sortera i fallande ordning:

SELECT *FROM SampleORDER BY vendor_name DESC;

Resultatet av SELECT är:

Sortera efter fält på en relativ position

Det är möjligt att använda MySQL ORDER BY-klausulen för att sortera efter ett fält på en RELATIV position.

När vi anger kolumnnamn i SELECT-frågan är det första fältet på position ett, det andra på två och så vidare. Dessutom kan vi bekräfta detta faktum med hjälp av ett exempel.

Här är en SELECT-angivelse som visar fält och sorterar efter en relativ position.

SELECT # pos_1 pos_2 pos_3 pos_4 sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY 4 DESC;

Här är resultatuppsättningen som du får efter att ha kört kommandot ovan:

Du kan se att MySQL sorterade efter fältet sample_size som motsvarar den fjärde kolumnen.

Användning av ORDER BY för att sortera på två kolumner

Vi hade tidigare nämnt att du kan använda ORDER BY på ett eller flera fält. I ett sådant fall behandlar MySQL det första fältet som primärt och det senare som sekundärt. Därför sorterar den först det primära och sedan det andra.

I det här exemplet demonstrerar vi ORDER BY på två kolumner, ett fält som ASC och ett annat DESC. Vi måste också infoga fler poster för att visa att den andra kolumnen också sorteras.

Du kan ignorera INSERT-anvisningen som gavs i början ovan och använda den nedan.

Nu har vi några rader med samma leverantörsnamn men varierande provstorlekar. Vi sorterar nu utifrån fälten vendor_name (primärt) och sample_size (sekundärt).

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC, sample_size DESC;

Detta MySQL-statement ger detta resultat:

Du kan se att alla värden i det primära fältet sorterades i stigande ordning. Och det framgår också av resultatet att sortering (i DESC) ägde rum på det andra också.

Nu ska vi ta reda på vad resultatet skulle ha blivit om vi bara hade sorterat på leverantörsnamnet.

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC;

Detta kommando kommer att ge följande resultat:

Vi kan se från ovanstående resultat att rader som tillhör Google och Twitter inte sorterade på sina provstorlekar.

Vi hoppas att du efter att ha avslutat den här handledningen ska känna dig bekväm med att använda MySQL ORDER BY-klausulen. Du kan dock öva mer med exempel för att få självförtroende.

Och om du vill lära dig SQL från grunden till djupet kan du läsa vår stegvisa MySQL-handledning.

Lämna ett svar

Din e-postadress kommer inte publiceras.