Heim Datenbank MySQL-Tutorial 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,因为这样还是可以提高一些效率的。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Union in C-Sprache So verwenden Sie Union in C-Sprache Sep 27, 2023 am 11:00 AM

Die Verwendung von Union in der C-Sprache ist ein spezieller Datentyp, der die Speicherung verschiedener Datentypen am selben Speicherort ermöglicht. Die Verwendung von Union kann uns helfen, Speicherplatz zu sparen und die Konvertierung zwischen verschiedenen Datentypen zu erleichtern. Bei der Verwendung von Union müssen Sie beachten, dass das entsprechende Mitglied gültig ist und nur auf ein Mitglied gleichzeitig zugegriffen werden kann.

So verwenden Sie die FULL OUTER JOIN-Funktion in MySQL, um die Vereinigung zweier Tabellen zu erhalten So verwenden Sie die FULL OUTER JOIN-Funktion in MySQL, um die Vereinigung zweier Tabellen zu erhalten Jul 26, 2023 pm 05:45 PM

So verwenden Sie die FULLOUTERJOIN-Funktion in MySQL, um die Vereinigung zweier Tabellen zu erhalten. In MySQL ist die FULLOUTERJOIN-Funktion eine leistungsstarke Join-Operation, die innere Joins und äußere Joins kombiniert. Es kann verwendet werden, um die Vereinigung zweier Tabellen zu erhalten, d. h. alle Daten in den beiden Tabellen in einem einzigen Ergebnissatz zu kombinieren. In diesem Artikel wird die Verwendung der FULLOUTERJOIN-Funktion vorgestellt und einige Beispielcodes bereitgestellt, um den Lesern das Verständnis zu erleichtern. FULLOUTERJOIN-Funktion

So verwenden Sie MySQL Union, um eine vollständige Outer-Join-Abfrage zu implementieren So verwenden Sie MySQL Union, um eine vollständige Outer-Join-Abfrage zu implementieren May 30, 2023 pm 06:49 PM

1. Union ist keine Methode zur Abfrage mehrerer Tabellenverbindungen. Sie kombiniert die Abfrageergebnisse mehrerer Abfragesätze zu einem Ergebnis und entfernt doppelte Daten. 2. Vollständiger äußerer Join fragt die Daten der linken und rechten Tabelle ab und stellt dann eine Verbindung gemäß den Verbindungsbedingungen her. Beispiel #Verwenden Sie die linke äußere Aunion und die rechte äußere BSELECT*FROMt_categorycLEFTOUTERJOINt_productpONc.cid=p.cnounionSELECT*FROMt_categorycRIGHTOUTERJOINt_productpONc.cid=p.cno

Wie definiert Java die Union-Klasse, um die Koexistenz von Datenkörpern zu realisieren? Wie definiert Java die Union-Klasse, um die Koexistenz von Datenkörpern zu realisieren? May 14, 2023 pm 03:34 PM

Definieren Sie die Union-Klasse, um die Koexistenz von Datenkörpern zu implementieren. In der Sprache C/C++ ist eine Union, auch Union genannt, eine Datenstruktur, die einer Struktur ähnelt. Eine Union kann wie eine Struktur viele Datentypen und Variablen enthalten. Der Unterschied zwischen den beiden ist wie folgt: Alle Variablen in einer Struktur „existieren“ und alle Variablen sind gleichzeitig gültig. In einer Union schließt sich jede Variable gegenseitig aus, nur eine Variable ist gleichzeitig wirksam und alle Variablen belegen denselben Speicherplatz. Wenn mehrere Daten den Speicher gemeinsam nutzen müssen oder nur einer von mehreren Daten gleichzeitig erfasst werden muss, kann eine Union verwendet werden. in Java

So verwenden Sie Union zur Optimierung der Like-Anweisung in MySQL So verwenden Sie Union zur Optimierung der Like-Anweisung in MySQL May 31, 2023 pm 03:55 PM

Optimieren Sie die Like-Anweisung mit Union 1) Manchmal müssen Sie möglicherweise den Operator „or“ zum Vergleich in der Abfrage verwenden. Wenn das Schlüsselwort or in der where-Klausel zu häufig verwendet wird, kann es dazu führen, dass der MySQL-Optimierer fälschlicherweise einen vollständigen Tabellenscan auswählt, um Datensätze abzurufen. Die Union-Klausel kann die Ausführung von Abfragen beschleunigen, insbesondere wenn eine Abfrage über einen optimierten Index verfügt und die andere Abfrage ebenfalls über einen optimierten Index verfügt. Wenn beispielsweise Indizes für Vorname und Nachname vorhanden sind, führen Sie die folgende Abfrageanweisung aus: mysql>select*fromstudentswherefirst_namelike'A

So optimieren Sie UNION über MySQL, um die Leistung zu verbessern So optimieren Sie UNION über MySQL, um die Leistung zu verbessern May 11, 2023 pm 05:40 PM

In vielen Datenbankanwendungen sind wir mit Situationen konfrontiert, in denen wir Daten aus mehreren Datenquellen integrieren müssen. Die UNION-Anweisung von MySQL ist eine Möglichkeit, diese Situation zu lösen, indem sie es uns ermöglicht, die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu einer zusammenzuführen. Obwohl dies eine sehr praktische Funktion ist, können UNION-Anweisungen auch zu Leistungsproblemen auf Ihrem System führen, wenn sie nicht optimiert werden. In diesem Artikel wird untersucht, wie Sie UNION optimieren können, um die Leistung durch MySQL zu verbessern. Verwenden Sie UNIONALL, während Sie U verwenden

Verwenden Sie die PHP-Funktion „mysqli_fetch_assoc', um eine Zeile aus der Ergebnismenge als assoziatives Array abzurufen Verwenden Sie die PHP-Funktion „mysqli_fetch_assoc', um eine Zeile aus der Ergebnismenge als assoziatives Array abzurufen Jul 24, 2023 pm 08:12 PM

Abrufen einer Zeile aus einer Ergebnismenge als assoziatives Array mit der PHP-Funktion „mysqli_fetch_assoc“. In PHP ist die Interaktion mit einer Datenbank eine häufige Aufgabe. Wenn wir eine SELECT-Abfrage ausführen und die Ergebnismenge erhalten, müssen wir normalerweise die Daten in der Ergebnismenge zur weiteren Verarbeitung in einem PHP-Array speichern. PHP bietet mehrere Funktionen zum Verarbeiten von Ergebnismengen. Eine der am häufigsten verwendeten Funktionen ist „mysqli_fetch_assoc“. Diese Funktion ruft eine Zeile aus der Ergebnismenge ab

Welche Punkte sind bei der Verwendung von Union in MySQL zu beachten? Welche Punkte sind bei der Verwendung von Union in MySQL zu beachten? Jun 03, 2023 pm 08:04 PM

1. Der Union-Operator wird verwendet, um die Ergebnisse von zwei oder mehr SELECT-Anweisungen in einer Ergebnismenge zu kombinieren. Durch mehrere Select-Anweisungen werden doppelte Daten gelöscht. 2. Wenn Sie Union zum Zusammenführen von Ergebnismengen verwenden, muss die Anzahl der Spalten in den beiden Ergebnismengen gleich sein. Beispielselectplayerno,townfromPLAYERSwheretown='Inglewood' unionselectplayerno,townfromPLAYERSwheretown='Plymouth';

See all articles