Sag es im Voraus Aus einer Laune heraus möchte ich wissen, welche Regeln für die Sortierung in MySQL verwendet werden? Okay, kommen wir ohne weitere Umschweife direkt zur Sache. MySql-Sortierung nach einzelnen Feldern Erstellen Sie wie folgt eine Testtabelle: CREATE TABLE `a` ( `code` varchar(255) DEFAULT NULL, `name` varchar(255) STANDARD NULL )ENGINE=InnoDB STANDARD-CHARSET=utf8; INSERT in einen Wert('Einfg.', 'Einfg.'); INSERT in einen Wert('Einfügen', 'Ausführen'); INSERT in einen Wert('Einfügung', 'Einfügung'); INSERT in einen Wert('Einfügen', 'Einfügen'); INSERT in einen Wert('Einfügen', 'Einfügen'); Die Testanweisung lautet wie folgt: -- hex(): Holen Sie sich den hexadezimalen Bytecode „select name“, hex(name) aus einer Reihenfolge nach Name desc Die Ergebnisse sind wie folgt:
Offensichtlich erfolgt die Sortierung in MySQL auf Bytecode-Basis. Wenn das erste Wort gleich ist, wird der Bytecode des zweiten Wortes verglichen und so weiter. MySql-Sortierung nach mehreren Feldern Nur durch Vergleichen können wir Ideen gewinnen und Fortschritte erzielen. Daher listen wir zunächst die absteigenden Sortierergebnisse eines einzelnen Felds auf und sehen uns dann die absteigenden Sortierergebnisse zweier Felder an, damit wir die Gründe analysieren können. -- In absteigender Reihenfolge nach Namen sortieren. Wählen Sie * aus einer Reihenfolge nach Namen aus. desc; -- Nach Code absteigend sortieren. Wählen Sie * aus einer Reihenfolge nach Code desc; Die linke Seite ist das Ergebnis der Sortierung nach Name desc, und die rechte Seite ist das Ergebnis der Sortierung nach Code desc
Das Ergebnis liegt auf der Hand: Wenn ein einzelnes Feld sortiert wird, wird die Reihenfolge, in der die anderen Felder erscheinen, automatisch sortiert. Schauen wir uns die Sortierung mehrerer Felder an. -- In absteigender Reihenfolge nach Code sortieren, Name auswählen * aus einer Reihenfolge nach Code, Name desc;
Die Ergebnisse sind wie folgt: Zunächst einmal vielen Dank an qq_27837327 und MjayTang. Ich habe es hier getestet. Der Originaltext, der besagt, dass diese SQL-Sortierung ungültig ist, ist falsch. Tatsächlich ist order by code, name desc gleichbedeutend mit order by code asc, name desc Nach dem Testen wurde festgestellt, dass der Sortiereffekt von „select *“ aus einer Reihenfolge nach Code und Name desc immer noch ungültig ist. Schauen wir uns die folgende Aussage an -- In absteigender Reihenfolge nach Code und Name sortieren. Wählen Sie * aus einer Reihenfolge nach Code desc, Name desc; -- Die Wirkung dieser Anweisung entspricht der folgenden Anweisung, wobei 1 und 2 jeweils dem Code und dem Namen entsprechen Wählen Sie Code und Name aus der Reihenfolge 1. absteigend, 2. absteigend aus.
Beim Vergleich der absteigenden Sortierung einzelner Code- und Namensfelder können wir feststellen, dass MySQL bei der Verwendung von „Order by Code desc, Name desc“ zuerst nach dem Code in absteigender Reihenfolge sortiert und dann den Namen für die absteigende Sortierung basierend auf dem Code in absteigender Reihenfolge verwendet. Darüber hinaus können wir auch die Funktion contat verwenden, um mehrere Felder zu verketten und sie dann zu sortieren. Stellen Sie jedoch sicher, dass das Feld nicht null sein kann. Werfen wir einen Blick auf die Concat-SQL-Anweisung und die Ergebnisse. Wählen Sie * aus einer Reihenfolge nach concat(Code, Name) desc
Offensichtlich ist in diesem Testbeispiel order by concat(code, name) desc gleichbedeutend mit order by code desc, name desc Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für alle hilfreich sein. Bitte lesen Sie: Mehrere wichtige MySQL-Variablen, detaillierte Code-Erklärung der Beziehung zwischen dem Binlog der MySQL-Masterbibliothek (Master-Log) und dem Relay-Log der Slavebibliothek, detaillierte Erklärung des MySQL-Vorbereitungsprinzips usw. Wenn Sie Fragen haben, hinterlassen Sie bitte jederzeit eine Nachricht. Jeder ist herzlich eingeladen, zu kommunizieren und zu diskutieren. Das könnte Sie auch interessieren:
|
<<: Videojs+Swiper realisiert Taobao-Produktdetailkarussell
>>: So ändern Sie die Standardcodierung von MySQL in Linux
Der DIV-Schwebeeffekt (feste Position) wird aussc...
Schauen wir uns zunächst einen CSS-Karussell-Anim...
Verwenden des UNION-Operators Union : Wird verwen...
1. Einrichten des virtuellen Nginx-Hosts Mit virt...
Dieser Artikel zeichnet das Installationstutorial...
Inhalt 1. Container-Lebenszyklusmanagement (1) Do...
1. Flexibles Layout .Vater { Anzeige: Flex; Inhal...
Dieser Effekt tritt am häufigsten auf unserer Bro...
/****************** * Kernel-Debugging-Technologi...
In der XHTML-Sprache wissen wir alle, dass das ul...
Code kopieren Der Code lautet wie folgt: <!DOC...
Seitendesigns im dunklen Hintergrundstil sind seh...
Heute habe ich den Mauszoom-Effekt auf der Vorders...
1. concat()-Funktion Funktion: Mehrere Zeichenfol...
Inhaltsverzeichnis 1. Alles auswählen 2. Erhöhen ...