Eine kurze Diskussion über die Sortierabfrage mit angegebener MySQL-Reihenfolge

Eine kurze Diskussion über die Sortierabfrage mit angegebener MySQL-Reihenfolge

Vor kurzem habe ich an einem Großbildschirmprojekt gearbeitet, das dem ähnelt, das Fluginformationen an Flughäfen und Bahnhöfen anzeigt, aber der angezeigte Inhalt ist viel komplizierter. Einige der Daten sind wie folgt:

Das Front-End verwendet hauptsächlich das Vue-Framework und erfordert, dass die Back-End-Daten auf dem Front-End angezeigt werden.

Erstens: Die Ein- und Ausfahrtsanzeigen ab Werk sind nicht festgelegt (könnten 6 sein oder zukünftig 7 oder 8);

Zweitens: Verwenden Sie Schrägstriche anstelle von „numerischen“ Werten.

Drittens: Die Namen der eingehenden und ausgehenden Indikatoren müssen mit den in der obigen Abbildung angegebenen Namen übereinstimmen (die aus der Back-End-Datenbank abgefragten Namen unterscheiden sich von den im Front-End angegebenen Namen, und die Einheiten enthalten „>1“, „>0,3“ usw., sodass sie nicht direkt vom Back-End abgefragt werden können. Der Name + die Einheit werden im Front-End platziert und müssen von Ihnen selbst verarbeitet werden); Viertens: Die Reihenfolge, in der die Back-End-Daten übertragen werden, muss der vom Front-End angegebenen Reihenfolge entsprechen. Die Anforderung besteht jedenfalls darin, dass das Front-End nur die Daten ausgeben muss und das Back-End sich um alle anderen Anforderungen kümmert.

Es gibt zwei Tabellen: table_a, table_b

Schritt 1: Erstellen Sie eine Tabelle basierend auf table_a.id=table_b.ids

SQL-Anweisung: SELECT * FROM (SELECT * FROM table_a a INNER JOIN table_b b ON a.id=b.ids)A, den unterstrichenen Teil als neue Tabelle A nehmen

Schritt 2: Es wird festgestellt, dass Xiaobailong und Sha Wujing nicht in der Datenbank sind, daher müssen sie hinzugefügt werden:

SQL-Anweisung:

Wählen Sie * aus (Wählen Sie * aus Tabelle_a a INNER JOIN Tabelle_b b ON a.id = b.ids
UNION ALLE
SELECT 8 id,'Benutzername' `Name`,'Benutzername' sname,'1000' Alter, 8 IDs, 27 `Wert`
UNION ALLE
SELECT 9 id,'Sha Wujing' `Name`,'Juanlian General' sname,'2000' Alter,9 ids, 289 `Wert`
)A

Der unterstrichene Teil wird verwendet, um einige fehlende Daten hinzuzufügen, die manchmal für feste Anzeigeanforderungen im Frontend verwendet werden.

Schritt 3: Bitte ordnen Sie in der Reihenfolge Tang Mönch, Sun Wukong, Zhu Bajie, Sha Wujing, Xiao Bailong, Chunhua, Wang Wu, Zhao Liu, Tang Qi

SQL-Anweisung:

Wählen Sie * aus (Wählen Sie * aus Tabelle_a a INNER JOIN Tabelle_b b ON a.id = b.ids
UNION ALLE
SELECT 8 id,'Benutzername' `Name`,'Benutzername' sname,'1000' Alter, 8 IDs, 27 `Wert`
UNION ALLE
SELECT 9 id,'Sha Wujing' `Name`,'Juanlian General' sname,'2000' Alter,9 ids, 289 `Wert`)A
    INNER JOIN (SELECT 7 ids, 1 `order`
UNION ALLE
WÄHLEN Sie 2 IDs, 2 „Bestellung“
UNION ALLE
WÄHLEN Sie 4 IDs, 3 „Bestellung“
UNION ALLE
WÄHLEN SIE 9 IDs, 4 „Bestellung“
UNION ALLE
WÄHLEN SIE 8 IDs, 5 „Bestellung“
UNION ALLE
WÄHLEN Sie 6 IDs, 6 „Bestellung“
UNION ALLE
Wählen Sie 1 IDs, 7 „Bestellung“ aus.
UNION ALLE
WÄHLEN SIE 5 IDs, 8 „Bestellung“
UNION ALLE
WÄHLEN SIE 3 IDs, 9`order` ) B ON B.ids=A.id
BESTELLEN NACH B.order

Die unterstrichenen Anweisungen fügen der gesamten Tabelle A zwei Felder hinzu und erreichen dadurch eine feste Sortierung auf eine bestimmte Weise. Felder können auch hinzugefügt werden, um andere gewünschte Zwecke zu erreichen.

Dies ist der gesamte Inhalt unserer Einführung in die Sortierabfrage mit MySQL-Angabe. Wenn Sie noch Fragen haben, können Sie diese im Kommentarbereich unten diskutieren.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung von Beispielen für MySQL-Einzeltabellenabfragevorgänge [Syntax, Einschränkungen, Gruppierung, Aggregation, Filterung, Sortierung usw.]
  • Detaillierte Erklärung, warum MySQL nicht mit UNION zwei Abfragen verbinden kann
  • Analyse der Verwendung von MySQL-Abfragesortierung und Abfrageaggregationsfunktionen
  • Yii2 implementiert den Sortierfunktionscode für MySQL-Datenbankassoziationsabfragen
  • Tutorial zum Sortieren von Abfrageergebnissen und Begrenzen der Anzahl zurückgegebener Ergebnisse in MySQL
  • Ein kurzes Tutorial zum Sortieren von MySQL-Abfrageergebnissen nach Wert
  • Beispiel für die Sortierung von Datenbankabfragen anhand zufälliger Sortierergebnisse (Oracle/MySQL/MS SQL Server)
  • MySQL-Abfrageoptimierung: Einführung in das Sortierlimit für Join-Abfragen (Join-, Order-by- und Limit-Anweisung)
  • MySQL-Abfrageoptimierung: eine kurze Erläuterung zur Sortierung von Join-Abfragen
  • Sortierung und Paginierung von MySQL-Abfragen

<<:  So starten und stoppen Sie das Shell-Skript zur Bereitstellung eines SpringBoot-JAR-Programms unter Linux

>>:  Sie müssen wahrscheinlich keine Switch-Anweisungen in JavaScript verwenden

Artikel empfehlen

Detaillierte Erläuterung der Verwendung von Docker Commit

Manchmal müssen Sie bestimmte Abhängigkeiten im B...

Detaillierte Analyse des React Native-Startvorgangs

Einführung: Dieser Artikel verwendet das von reac...

Konfigurationslösung für die MySQL Dual-Master-Architektur (Master-Master)

In Unternehmen hat die hohe Verfügbarkeit von Dat...

HTTP-Statuscodes

Dieser Statuscode gibt Auskunft über den Status d...

Vue3.0 Handschrift-Lupeneffekt

Der zu erzielende Effekt ist: Festes Vergrößern a...

Nginx Reverse-Proxy-Konfiguration entfernt Präfix

Wenn Sie nginx als Reverse-Proxy verwenden, könne...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...

Tutorial zur Installation von MySQL unter CentOS7

Vor kurzem habe ich vor, eine Cloud-Festplatte au...

Details zur Verwendung von Bimface in Vue

Inhaltsverzeichnis 1. Installieren Sie das Vue-Ge...

Slot-Anordnung und Nutzungsanalyse in Vue

Die Betriebsumgebung dieses Tutorials: Windows 7-...

Verwendung des Linux-Datumsbefehls

1. Befehlseinführung Mit dem Datumsbefehl wird di...

Docker Link realisiert die Containerverbindung

Inhaltsverzeichnis 1.1. Netzwerkzugriff zwischen ...

Beispielcode zur Realisierung eines Buchseitenumblättereffekts mit CSS3

Wichtige Erkenntnisse: 1. Beherrschung der CSS3-3...