MySQL
BESTELLEN BIJ
Zoeken…
contexten
De clausules in een SELECT hebben een specifieke volgorde:
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ...
ORDER BY ... -- goes here
LIMIT ... OFFSET ...;
( SELECT ... ) UNION ( SELECT ... ) ORDER BY ... -- for ordering the result of the UNION.
SELECT ... GROUP_CONCAT(DISTINCT x ORDER BY ... SEPARATOR ...) ...
ALTER TABLE ... ORDER BY ... -- probably useful only for MyISAM; not for InnoDB
basis-
BESTELLEN OP x
x kan elk gegevenstype zijn.
-
NULLsvooraf aan niet-NULL's. - De standaardwaarde is
ASC(laagste naar hoogste) - Strings (
VARCHAR, enz.) Zijn geordend volgens deCOLLATIONvan de aangifte -
ENUMszijn geordend op volgorde van declaratie van de strings.
Stijgend dalend
ORDER BY x ASC -- same as default
ORDER BY x DESC -- highest to lowest
ORDER BY lastname, firstname -- typical name sorting; using two columns
ORDER BY submit_date DESC -- latest first
ORDER BY submit_date DESC, id ASC -- latest first, but fully specifying order.
-
ASC=ASCENDING,DESC=DESCENDING -
NULLskomen op de eerste plaats, zelfs voorDESC. - In de bovenstaande voorbeelden kunnen
INDEX(x),INDEX(lastname, firstname),INDEX(submit_date)prestaties aanzienlijk verbeteren.
Maar ... ASC en DESC mengen, zoals in het laatste voorbeeld, kan geen gebruik maken van een samengestelde index. INDEX(submit_date DESC, id ASC) helpt ook niet - " DESC " wordt syntactisch herkend in de INDEX aangifte, maar wordt genegeerd.
Enkele trucjes
ORDER BY FIND_IN_SET(card_type, "MASTER-CARD,VISA,DISCOVER") -- sort 'MASTER-CARD' first.
ORDER BY x IS NULL, x -- order by `x`, but put `NULLs` last.
Aangepaste bestelling
SELECT * FROM some_table WHERE id IN (118, 17, 113, 23, 72)
ORDER BY FIELD(id, 118, 17, 113, 23, 72);
Retourneert het resultaat in de opgegeven volgorde van id's.
| ID kaart | ... |
|---|---|
| 118 | ... |
| 17 | ... |
| 113 | ... |
| 23 | ... |
| 72 | ... |
Handig als de ID's al zijn gesorteerd en u alleen de rijen moet ophalen.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow