Maison base de données tutoriel mysql union组合结果集时的order问题

union组合结果集时的order问题

Jun 07, 2016 pm 05:59 PM
union 结果集

如果能确定各查询结果不会有重复的项,最好就带上all,因为这样还是可以提高一些效率的。

近日,在一个项目中用到union组合两个select结果,调试sql时总是报错,所报错误也只是说在union附近有问题,因为sql中用到了group,我想也许是union不支持吧,由于时间紧,就先在程序中做了合并处理。但程序员对于代码的完美性要求总是不能放弃的,所以,常常会有如鲠在喉的感觉,不搞明白心里会不舒服。

仔细查看了MS的在线帮助,在有关UNION的描述中找到这样一段说明:

如果使用 UNION 运算符,那么各个 SELECT 语句不能包含它们自己的 ORDER BY 或 COMPUTE 子句。而只能在最后一个 SELECT 语句的后面使用一个 ORDER BY 或 COMPUTE 子句;该子句适用于最终的组合结果集。只能在各个 SELECT 语句中指定 GROUP BY 和 HAVING 子句。

在这段说明中并没有说union不能用于group,而是说在各个Select中不能包含order by,而在我的语句中恰恰就有这个,看来是我猜错了。试了一下把order去掉,果然不会报错了。也就是说,使用union的时候,各查询group是可以的,但不能order或compute。那如果说非要group,有没有办法呢?正常情况下只能在最后使用,而且是针对组合后的结果集进行排序的,而我刚才所说的group,就不能用于最终结果集,而只能用于每个查询。

这是正常的用法,有些人想在每个查询中先排序,然后再union,也有非正常的用法,类似:

select * from (select a from [table] order by a) union ...

另外,union后面还可以加上all,在默认情况下,union时会删除重复的项,如果加上all则不进行筛选,组合所有的结果。如果能确定各查询结果不会有重复的项,最好就带上all,因为这样还是可以提高一些效率的。
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser l'union en langage C Comment utiliser l'union en langage C Sep 27, 2023 am 11:00 AM

L'utilisation de l'union en langage C est un type de données spécial qui permet de stocker différents types de données dans le même emplacement mémoire. L'utilisation de l'union peut nous aider à économiser de l'espace mémoire et à faciliter la conversion entre différents types de données. Lorsque vous utilisez union, vous devez noter que le membre correspondant est valide et qu’un seul membre est accessible en même temps.

Comment utiliser la fonction FULL OUTER JOIN dans MySQL pour obtenir l'union de deux tables Comment utiliser la fonction FULL OUTER JOIN dans MySQL pour obtenir l'union de deux tables Jul 26, 2023 pm 05:45 PM

Comment utiliser la fonction FULLOUTERJOIN dans MySQL pour obtenir l'union de deux tables. Dans MySQL, la fonction FULLOUTERJOIN est une opération de jointure puissante qui combine des jointures internes et des jointures externes. Il peut être utilisé pour obtenir l'union de deux tables, c'est-à-dire combiner toutes les données des deux tables en un seul ensemble de résultats. Cet article présentera l'utilisation de la fonction FULLOUTERJOIN et fournira des exemples de code pour aider les lecteurs à mieux comprendre. Fonction FULLOUTERJOIN

Comment utiliser l'union MySQL pour implémenter une requête de jointure externe complète Comment utiliser l'union MySQL pour implémenter une requête de jointure externe complète May 30, 2023 pm 06:49 PM

1. L'Union n'est pas une méthode de requête de connexion multi-tables. Elle combine les résultats de requête de plusieurs phrases de requête en un seul résultat et supprime les données en double. 2. La jointure externe complète interroge les données de la table de gauche et de la table de droite, puis se connecte selon les conditions de connexion. Exemple #Utilisez l'Aunion externe gauche et l'externe droit BSELECT*FROMt_categorycLEFTOUTERJOINt_productpONc.cid=p.cnounionSELECT*FROMt_categorycRIGHTOUTERJOINt_productpONc.cid=p.cno

Comment Java définit-il la classe Union pour réaliser la coexistence des corps de données ? Comment Java définit-il la classe Union pour réaliser la coexistence des corps de données ? May 14, 2023 pm 03:34 PM

Définissez la classe Union pour implémenter la coexistence de corps de données. Dans le langage C/C++, une union, également appelée union, est une structure de données similaire à une structure. Une union, comme une structure, peut contenir de nombreux types de données et variables. La différence entre les deux est la suivante : toutes les variables d'une structure « coexistent » et toutes les variables sont valides en même temps. Chaque variable occupe différents espaces mémoire ; dans une union, chaque variable est « mutuellement exclusive », une seule variable est efficace en même temps et toutes les variables occupent le même espace mémoire. Lorsque plusieurs données doivent partager la mémoire ou qu'une seule donnée parmi plusieurs doit être prise à la fois, une union peut être utilisée. en Java

Comment utiliser Union pour optimiser l'instruction Like dans MySQL Comment utiliser Union pour optimiser l'instruction Like dans MySQL May 31, 2023 pm 03:55 PM

Optimiser l'instruction Like avec Union 1) Parfois, vous devrez peut-être utiliser l'opérateur ou à des fins de comparaison dans la requête. Lorsque le mot clé or est utilisé trop fréquemment dans la clause Where, l'optimiseur MySQL peut choisir par erreur une analyse complète de la table pour récupérer les enregistrements. La clause union peut accélérer l'exécution des requêtes, en particulier lorsque l'une des requêtes a un index optimisé et que l'autre requête a également un index optimisé. Par exemple, lorsqu'il y a des index sur first_name et last_name respectivement, exécutez l'instruction de requête suivante : mysql>select*fromstudentswherefirst_namelike'A

Comment optimiser UNION via MySQL pour améliorer les performances Comment optimiser UNION via MySQL pour améliorer les performances May 11, 2023 pm 05:40 PM

Dans de nombreuses applications de bases de données, nous sommes confrontés à des situations dans lesquelles nous devons intégrer des données provenant de plusieurs sources de données. L'instruction UNION de MySQL est un moyen de résoudre cette situation, qui nous permet de fusionner les ensembles de résultats de deux ou plusieurs instructions SELECT en une seule. Bien qu'il s'agisse d'une fonctionnalité très pratique, les instructions UNION peuvent également entraîner des problèmes de performances sur votre système si elles ne sont pas optimisées. Cet article explorera comment optimiser UNION pour améliorer les performances via MySQL. Utilisez UNIONALL tout en utilisant U

Utilisez la fonction PHP 'mysqli_fetch_assoc' pour obtenir une ligne du jeu de résultats sous forme de tableau associatif Utilisez la fonction PHP 'mysqli_fetch_assoc' pour obtenir une ligne du jeu de résultats sous forme de tableau associatif Jul 24, 2023 pm 08:12 PM

Récupérer une ligne d'un ensemble de résultats sous forme de tableau associatif à l'aide de la fonction PHP "mysqli_fetch_assoc". En PHP, interagir avec une base de données est une tâche courante. Lorsque nous exécutons une requête SELECT et obtenons le jeu de résultats, nous devons généralement stocker les données du jeu de résultats dans un tableau PHP pour un traitement ultérieur. PHP fournit plusieurs fonctions pour traiter les ensembles de résultats, l'une des fonctions couramment utilisées est "mysqli_fetch_assoc". Cette fonction obtient une ligne du jeu de résultats

Quels sont les points à noter lors de l'utilisation de union dans MySQL ? Quels sont les points à noter lors de l'utilisation de union dans MySQL ? Jun 03, 2023 pm 08:04 PM

1. L'opérateur union est utilisé pour combiner les résultats de deux ou plusieurs instructions select dans un ensemble de résultats. Plusieurs instructions de sélection supprimeront les données en double. 2. Lorsque vous utilisez union pour fusionner des ensembles de résultats, le nombre de colonnes dans les deux ensembles de résultats doit être le même. Exempleselectplayerno,townfromPLAYERSwheretown='Inglewood' unionselectplayerno,townfromPLAYERSwheretown='Plymouth';

See all articles