Maison > base de données > tutoriel mysql > Comment trier correctement les résultats d'une UNION SQL ?

Comment trier correctement les résultats d'une UNION SQL ?

Susan Sarandon
Libérer: 2025-01-11 06:03:42
original
472 Les gens l'ont consulté

How to Properly Order Results from a SQL UNION?

UNION et tri en SQL

En SQL, l'opérateur UNION nous permet de combiner plusieurs instructions SELECT en un seul jeu de résultats. Cependant, le tri des données combinées peut s'avérer délicat lorsque chaque instruction SELECT peut renvoyer des données différentes.

Considérez la requête suivante qui récupère les données de la table Student en fonction de deux critères :

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age > 20
UNION
SELECT id, name, age
FROM Student
WHERE Name LIKE "%a%";</code>
Copier après la connexion

Nous souhaitons trier le résultat combiné défini par la colonne de nom. Malheureusement, la requête suivante ne fonctionne pas comme prévu :

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age > 20
ORDER BY name;</code>
Copier après la connexion

Dans cette requête, la clause ORDER BY est appliquée aux résultats combinés des conditions WHERE, plutôt qu'à l'ensemble de résultats complet de UNION. Les données ne sont donc pas triées.

Pour trier l'ensemble de résultats combinés par nom, déplacez simplement la clause ORDER BY en dehors de l'opérateur UNION :

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age > 20
UNION
SELECT id, name, age
FROM Student
WHERE Name LIKE "%a%"
ORDER BY name;</code>
Copier après la connexion

Dans cette requête modifiée, la clause ORDER BY est appliquée à l'ensemble de résultats complet, garantissant que les données combinées sont correctement triées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal