HOWTO · MySQL

Trier les données MySQL par ordre alphabétique

Ce tutoriel montre comment trier les données d'un serveur MySQL par ordre alphabétique.

Sur cette page

Pour récupérer les lignes MySQL par nom, de A à Z, ajoutez ORDER BY suivi de la colonne de texte à votre requête SELECT. Le tri ascendant est le comportement par défaut ; ajoutez DESC pour inverser l’ordre, de Z à A. Les exemples ci-dessous utilisent la table student_details et sa colonne stu_firstName.

Créer une table dans MySQL

La table d’exemple contient un identifiant, un prénom et un nom. Pour la créer, exécutez CREATE TABLE student_details (stu_id INT, stu_firstName VARCHAR(255) DEFAULT NULL, stu_lastName VARCHAR(255) DEFAULT NULL, PRIMARY KEY (stu_id));. Insérez ensuite les enregistrements d’exemple avec INSERT INTO student_details (stu_id, stu_firstName, stu_lastName) VALUES (1, 'Preet', 'Sanghavi'), (2, 'Rich', 'John'), (3, 'Veron', 'Brow'), (4, 'Geo', 'Jos'), (5, 'Hash', 'Shah'), (6, 'Sachin', 'Parker'), (7, 'David', 'Miller');. La clé primaire attribue un identifiant distinct à chaque ligne d’étudiant ; les noms sont les valeurs utilisées dans les exemples de tri. Ces instructions SQL sont des exemples de requêtes ; leurs résultats dépendent de leur exécution sur une base de données MySQL.

Pour consulter les lignes insérées, exécutez SELECT * FROM student_details;. Cette requête ne précise aucun ordre de tri : la base de données peut donc renvoyer les lignes dans un ordre qui n’est pas alphabétique. Ne considérez pas l’ordre d’insertion comme une garantie de tri ; demandez l’ordre souhaité dans chaque requête.

Trier les données par ordre alphabétique dans une base de données MySQL

La clause de tri est ORDER BY ; ORDER seul ne suffit pas. Sa forme générale est SELECT columns FROM table_name ORDER BY column_name;. Dans cet exemple, sélectionnez uniquement les prénoms avec SELECT stu_firstName FROM student_details ORDER BY stu_firstName;. Comme le tri ascendant est le comportement par défaut, les prénoms sont classés alphabétiquement de A à Z. La séquence obtenue est David, Geo, Hash, Preet, Rich, Sachin, Veron.

Vous pouvez écrire explicitement ASC pour indiquer clairement le sens du tri : SELECT stu_firstName FROM student_details ORDER BY stu_firstName ASC;. Le résultat est le même que si vous omettiez le sens du tri. ASC et DESC sont des mots-clés qui indiquent le sens du tri et suivent le nom de la colonne dans la clause ORDER BY.

Pour inverser la séquence, ajoutez DESC : SELECT stu_firstName FROM student_details ORDER BY stu_firstName DESC;. Le résultat est Veron, Sachin, Rich, Preet, Hash, Geo, David. Il s’agit d’un tri alphabétique descendant, de Z vers A. Le sens du tri change l’ordre des lignes renvoyées, mais pas les valeurs stockées ; il ne réorganise pas la table elle-même. Comme l’exemple sélectionne uniquement stu_firstName, le résultat ne contient qu’une colonne de prénoms. Ajoutez stu_id ou stu_lastName à la liste SELECT si vous souhaitez afficher davantage de détails ; le tri reste déterminé par la colonne indiquée après ORDER BY.

Adaptez la requête en remplaçant student_details par le nom de votre table et stu_firstName par la colonne de texte à trier. Gardez la colonne dans la clause ORDER BY, même si vous en sélectionnez d’autres, par exemple avec SELECT stu_firstName, stu_lastName FROM student_details ORDER BY stu_firstName;. Utilisez le sens par défaut ou ASC pour un tri de A à Z, et DESC pour l’ordre inverse. L’ordre réel des valeurs textuelles dépend de la collation MySQL de la colonne. Cet exemple simple porte sur les noms anglais fournis et ne définit pas les règles de tri propres à chaque langue.

Si la requête filtre aussi les lignes, placez ORDER BY après WHERE ; si elle limite le nombre de lignes renvoyées, placez LIMIT après la clause de tri. La structure est, par exemple, SELECT columns FROM table_name WHERE condition ORDER BY column_name DESC LIMIT row_count;. MySQL applique d’abord le filtre, trie ensuite les lignes correspondantes, puis en renvoie jusqu’au nombre demandé. La colonne de tri doit être accessible à la requête, et le sens du tri se place après son nom.