ORDER BY dans MySQL : requête DESC et ASC avec EXEMPLE

Tri des résultats

À l'aide de la commande SELECT, les résultats ont été renvoyés dans le même ordre que celui dans lequel les enregistrements ont été ajoutés à la base de données. Il s'agit de l'ordre de tri par défaut. Dans cette section, nous verrons comment trier les résultats de nos requêtes. Le tri consiste simplement à réorganiser les résultats de notre requête d'une manière spécifiée. Le tri peut être effectué sur une seule colonne ou sur plusieurs colonnes. Cela peut être fait sur les types de données numériques, chaînes ainsi que sur les types de données date.

Qu’est-ce que ORDER BY dans MySQL ?

MySQL ORDRE PAR est utilisé conjointement avec la requête SELECT pour trier les données de manière ordonnée. La clause MySQL ORDER BY est utilisée pour trier les jeux de résultats de la requête par ordre croissant ou décroissant.

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

ICI

  • "Instruction SELECT... " est la requête de sélection régulière
  • "| " représente des alternatives
  • « [OÙ état | GROUP BY `field_name(s)` HAVING condition" est la condition facultative utilisée pour filtrer les jeux de résultats de la requête.
  • "COMMANDÉ PAR" effectue le tri de l'ensemble des résultats de la requête
  • « [ASC | DESC]” est le mot-clé utilisé pour trier les ensembles de résultats par ordre croissant ou décroissant. Note ASC est utilisé par défaut.
  • Que sont les mots-clés DESC et ASC ?

    Mots-clés DESC et ASCASC est la forme abrégée pour ascendant Mots-clés DESC et ASCMySQL DESC est la forme abrégée pour descendre
    Il est utilisé pour trier les résultats de la requête dans un style de haut en bas. Il est utilisé pour trier les résultats de la requête dans un style de bas en haut
    Lorsque vous travaillez sur des types de données date, la date la plus ancienne est affichée en haut de la liste. . Lorsque vous travaillez sur des types de date, la dernière date est affichée en haut de la liste.
    Lorsque vous travaillez avec des types de données numériques, les valeurs les plus basses sont affichées en haut de la liste. Lorsque vous travaillez avec des types de données numériques, les valeurs les plus élevées sont affichées en haut du jeu de résultats de la requête.
    Lorsque vous travaillez avec des types de données chaîne, le jeu de résultats de la requête est trié de ceux commençant par la lettre A jusqu'à la lettre Z. Lorsque vous travaillez avec des types de données chaîne, le jeu de résultats de la requête est trié de ceux commençant par la lettre Z jusqu'à la lettre A.

    Les mots-clés SQL DESC et ASC sont utilisés conjointement avec l'instruction SELECT et la clause MySQL ORDER BY.


    Syntaxe DESC et ASC

    Le mot-clé de tri SQL DESC a le résultat suivantwing syntaxe de base.

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    ICI

    • SELECT {Nom(s) de champ | *} FROM nom(s) de table est l'instruction contenant les champs et les tables à partir desquels obtenir le jeu de résultats.
    • [OÙ condition] est facultatif mais peut être utilisé pour filtrer les données en fonction de la condition donnée.
    • COMMANDÉ PAR fieldname(s) est obligatoire et est le champ sur lequel le tri doit être effectué. Le mot clé MySQL DESC spécifie que le tri doit être effectué par ordre décroissant.
    • [LIMITE] est facultatif mais peut être utilisé pour limiter le nombre de résultats renvoyés par le jeu de résultats de la requête.

    Exemples :

    Regardons maintenant un exemple pratique –

    SELECT * FROM members;

    L'exécution du script ci-dessus dans MySQL Workbench sur myflixdb nous donne le résultat suivantwing résultats présentés ci-dessous.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553


Supposons que le service marketing souhaite que les membrestails classés par ordre décroissant de date de naissance. Cela les aidera à envoyer leurs vœux d’anniversaire en temps opportun. Nous pouvons obtenir ladite liste en exécutant une requête comme ci-dessous –

SELECT * FROM members ORDER BY date_of_birth DESC;

L'exécution du script ci-dessus dans MySQL Workbench sur myflixdb nous donne le résultat suivantwing résultats présentés ci-dessous.

Exemple DESC et ASC

La même requête par ordre croissant

SELECT * FROM membres ORDER BY date_of_birth ASC

Exemple DESC et ASC

Remarque : les valeurs NULL signifient aucune valeur (pas zéro ou chaîne vide). Observez la façon dont ils ont été triés.

D'autres exemples

Considérons ce qui suitwing Tri SQL par script qui répertorie tous les enregistrements membres.

SELECT * FROM `members`;

L'exécution du script ci-dessus donne le résultat suivantwing résultats présentés ci-dessous.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL


Supposons que nous souhaitions obtenir une liste qui trie l'ensemble des résultats de la requête à l'aide du champ sexe, nous utiliserions le script ci-dessous.

SELECT * FROM `members` ORDER BY `gender`;
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

Les membres « Femme » ont été affichés en premier, suivis des membres « Mâle », car lorsque la clause ORDER BY DESC est utilisée sans spécifier le mot-clé ASC ou MySQL DESC, par défaut, MySQL a trié l'ensemble des résultats de la requête dans un ordre croissant.

Regardons maintenant un exemple qui fait le tri sur deux colonnes; le premier est trié in ordre croissant par défaut tandis que la deuxième colonne est trié in Ordre décroissant.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

L'exécution du script ci-dessus dans MySQL Workbench sur myflixdb donne le résultat suivantwing résultats.

Exemple DESC et ASC

La colonne sexe était triée par ordre croissant par défaut tandis que la colonne date de naissance était triée explicitement par ordre décroissant.

Pourquoi pouvons-nous utiliser DESC et ASC ?

Supposons que nous souhaitions imprimer un historique des paiements pour un membre d'une vidéothèque afin de répondre aux questions de la réception, ne serait-il pas plus logique d'imprimer les paiements dans un ordre chronologique décroissant, en commençant par le paiement récent jusqu'au paiement précédent ?

DESC en SQL est un mot-clé qui devient utile dans de telles situations. Nous pouvons écrire une requête qui trie la liste par ordre décroissant en utilisant la date de paiement.

Supposons que le service marketing souhaite obtenir une liste de films par catégorie que les membres peuvent utiliser pour décider quels films sont disponibles dans la bibliothèque lors de la location de films, ne serait-il pas plus logique de trier les noms et les titres des catégories de films par ordre croissant afin que les membres peuvent-ils rechercher rapidement les informations dans la liste ?

Le mot-clé ASC s'avère utile dans de telles situations ; nous pouvons obtenir la liste des films triée par nom de catégorie et titre de film dans un ordre croissant.

Résumé

  • Le tri des résultats de requête consiste à réorganiser les lignes renvoyées par un ensemble de résultats de requête par ordre croissant ou décroissant.
  • Le mot-clé DESC en SQL est utilisé pour trier les résultats de la requête par ordre décroissant.
  • Le mot-clé ASC est utilisé pour trier l’ensemble des résultats de la requête dans un ordre croissant.
  • DESC et ASC fonctionnent conjointement avec le mot-clé ORDER BY. Ils peuvent également être utilisés en combinaison avec d'autres mots-clés tels que clause O et LIMITE
  • La valeur par défaut pour ORDER BY lorsque rien n'a été explicitement spécifié est ASC.