Maison >base de données >tutoriel mysql >Comment trier les résultats de plusieurs requêtes SELECT combinées avec UNION ?

Comment trier les résultats de plusieurs requêtes SELECT combinées avec UNION ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-11 07:12:41390parcourir

How to Order Results from Multiple SELECT Queries Combined with UNION?

Tri des résultats des requêtes SELECT et UNION combinées

Combiner plusieurs requêtes SELECT à l'aide de UNION présente un défi commun : comment trier l'ensemble de données résultant. Explorons ce problème et sa solution.

Le défi

Lors de la récupération de données de diverses tables ou de l'utilisation de plusieurs instructions SELECT jointes par UNION, obtenir un ordre de tri de colonnes spécifique peut être délicat.

Explication détaillée

Considérez ce scénario :

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age < 20
UNION
SELECT id, name, age
FROM Student
WHERE age >= 20;</code>

Cette requête sélectionne les données de deux groupes distincts au sein de la table Student. Cependant, une simple clause ORDER BY name placée dans l'une ou l'autre des instructions SELECT ne triera pas correctement les résultats combinés.

La solution

L'approche correcte consiste à appliquer la clause ORDER BY après la déclaration UNION. La requête suivante montre la méthode appropriée :

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age < 20
UNION
SELECT id, name, age
FROM Student
WHERE age >= 20
ORDER BY name;</code>

Cela garantit que la clause ORDER BY opère sur l'ensemble de données complet produit par l'opération UNION, garantissant la sortie triée souhaitée.

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!

Déclaration:
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