Maison >base de données >tutoriel mysql >Comment puis-je trier les résultats dans chaque section lors de l'utilisation de UNION dans MySQL ?

Comment puis-je trier les résultats dans chaque section lors de l'utilisation de UNION dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-11 11:39:42480parcourir

How Can I Sort Results Within Each Section When Using UNION in MySQL?

Maîtriser les résultats triés avec UNION et ORDER BY de MySQL

Combiner des données de plusieurs instructions SELECT à l'aide de UNION de MySQL est puissant, mais maintenir le tri des sections individuelles peut être délicat. Ce guide montre comment trier les résultats dans chaque section en fonction d'une colonne spécifique (comme « id » ou « add_date ») tout en préservant le regroupement logique de votre UNION requête.

Votre scénario implique de récupérer des données basées sur différents critères à partir d'un seul tableau, puis de consolider les résultats à l'aide de UNION sous des rubriques distinctes. Voici la solution :

Introduisez une colonne « classement » (une pseudo-colonne) à chaque SELECT affirmation. Cette valeur numérique dicte l'ordre d'affichage dans chaque section.

<code class="language-sql">SELECT 1 AS Rank, id, add_date FROM Table
UNION ALL
SELECT 2 AS Rank, id, add_date FROM Table WHERE distance < ...</code>

Ensuite, encapsulez cette requête combinée dans une sous-requête. La requête principale utilise ensuite cette sous-requête comme source de données, en triant d'abord selon la colonne « Classement », puis selon les critères de tri que vous avez choisis (par exemple, « id » ou « add_date »).

<code class="language-sql">SELECT *
FROM (
    SELECT 1 AS Rank, id, add_date FROM Table
    UNION ALL
    SELECT 2 AS Rank, id, add_date FROM Table WHERE distance < ...
) AS Subquery
ORDER BY Rank, id; -- Or ORDER BY Rank, add_date;</code>

Cette méthode garantit un tri précis dans chaque section définie par votre UNION opération, fournissant un ensemble de résultats propre et organisé.

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