Ce face ORDER BY
Fără ORDER BY, MySQL nu garantează nicio ordine a rândurilor. Dacă ordinea contează, scrie mereu ORDER BY.
ASC (crescător) este implicit. DESC înseamnă descrescător. Poți ordona după mai multe coloane: a doua coloană decide doar între rândurile egale pe prima.
Parametri
| Parametru | Descriere |
|---|---|
coloana |
Coloana (sau expresia) după care se ordonează. |
ASC / DESC |
Opțional. Crescător (implicit) sau descrescător. |
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE produse (
id INT PRIMARY KEY,
nume VARCHAR(50) NOT NULL,
categorie VARCHAR(30),
pret INT,
stoc INT
);
INSERT INTO produse VALUES
(1, 'Laptop', 'Electronice', 3500, 4),
(2, 'Mouse', 'Electronice', 80, 25),
(3, 'Birou', 'Mobilier', 900, 0),
(4, 'Scaun', 'Mobilier', 650, 7),
(5, 'Monitor', 'Electronice', 1200, 3);
Exemplul 1: Cele mai scumpe produse primele
SELECT nume, pret FROM produse ORDER BY pret DESC;
Rezultat
+---------+------+
| nume | pret |
+---------+------+
| Laptop | 3500 |
| Monitor | 1200 |
| Birou | 900 |
| Scaun | 650 |
| Mouse | 80 |
+---------+------+
Exemplul 2: După două coloane
Întâi alfabetic după categorie, apoi, în cadrul fiecărei categorii, după preț crescător.
SELECT categorie, nume, pret FROM produse ORDER BY categorie, pret;
Rezultat
+-------------+---------+------+
| categorie | nume | pret |
+-------------+---------+------+
| Electronice | Mouse | 80 |
| Electronice | Monitor | 1200 |
| Electronice | Laptop | 3500 |
| Mobilier | Scaun | 650 |
| Mobilier | Birou | 900 |
+-------------+---------+------+
Greșeli frecvente
- Pui
ORDER BYînaintea luiWHERE. Ordinea corectă a clauzelor este:SELECT,FROM,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT. - Crezi că
DESCse aplică tuturor coloanelor. ÎnORDER BY a, b DESC, doarbeste descrescător.