So verwenden Sie „union all“ in MySQL, um die Union-Sortierung zu erhalten

So verwenden Sie „union all“ in MySQL, um die Union-Sortierung zu erhalten

Manchmal kommt es in einem Projekt aus irreversiblen Gründen vor, dass die in der Tabelle gespeicherten Daten die Anzeigeanforderungen auf der Seite nicht erfüllen. Das vorherige Projekt hatte eine Funktion zum Anzeigen von Artikelinhalten. Artikel wurden in drei Zustände unterteilt: ausstehend, veröffentlicht und offline.

Die Werte des Felds (PROMOTE_STATUS), die zum Bestimmen des Status in der Datentabelle verwendet werden, sind 0, 1 bzw. 2. Die anfängliche Anforderung bestand darin, dass Artikel nur als ausstehend und veröffentlicht angezeigt werden, wobei „veröffentlicht“ vor „ausstehend“ aufgeführt wird und die beiden Zustände entsprechend ihren eigenen Umständen sortiert werden. Diese Implementierung ist relativ einfach und kann mit der folgenden Order-By-Anweisung erreicht werden.

Sortieren nach PROMOTE_STATUS desc, SEQUENCE_ID desc......

Nach dem Test des Produkts war man der Meinung, dass dies optimiert werden könnte und die Anzeige der Artikel in „Veröffentlicht“, „Zu veröffentlichen“ und „Offline“ geändert werden sollte (ja, „Offline“ war plötzlich erforderlich und wurde sehr stolz am Ende platziert). Was soll ich dann tun? Es ist definitiv nicht möglich, die entsprechenden Werte von PROMOTE_STATUS von „Release“, „Pending Release“ und „Offline“ auf 2, 1 und 0 zu ändern, da auch andere Kollegen diese Tabelle verwenden. Sollte sich hier die Korrespondenz ändern. Die Beurteilungslogik der Codes anderer Kollegen muss geändert werden.

Also dachte ich an eine Vereinigung aller Artikel und musste dann auch noch die Anzeigereihenfolge der Artikel in den drei Zuständen implementieren. Daher besteht die endgültige Idee darin, die Daten herauszufinden, wenn PROMOTE_STATUS jeweils 1, 0 und 2 ist, und sie dann entsprechend der Situation in jedem Status nacheinander zu sortieren und schließlich jede Teilmenge zur Anzeige an die Seite zurückzugeben, nachdem alle vereint wurden.

Die endgültige SQL-Anweisung lautet wie folgt:

wählen
    PROMOTE_ID,
    Sequenz-ID,
    PROMOTE_STATUS,
    PROMOTE_TITLE,
    VERÖFFENTLICHUNGSDATUM
    AUS (
      (WÄHLEN
        PROMOTE_ID,
    Sequenz-ID,
    PROMOTE_STATUS,
        PROMOTE_TITLE,
        VERÖFFENTLICHUNGSDATUM 
       VON SYS_TEXT_PROMOTE
       WO
         ENABLED_FLAG = "1"
         UND PROMOTE_STATUS=1
         UND SORT_ID = #{params.sortId}
         Sortieren nach SEQUENCE_ID DESC,LAST_UPDATE_DATE DESC) a)
Vereinigung alle
wählen
    PROMOTE_ID,
    Sequenz-ID,
    PROMOTE_STATUS,
    PROMOTE_TITLE,
    VERÖFFENTLICHUNGSDATUM
    AUS (
      (WÄHLEN
        PROMOTE_ID,
    Sequenz-ID,
    PROMOTE_STATUS,
        PROMOTE_TITLE,
        VERÖFFENTLICHUNGSDATUM 
       VON SYS_TEXT_PROMOTE
       WO
        ENABLED_FLAG = "1"
        UND PROMOTE_STATUS=2
        UND SORT_ID = #{params.sortId}
        Sortieren nach RELEASE_DATE DESC,LAST_UPDATE_DATE DESC) b)
Vereinigung alle
wählen
    PROMOTE_ID,
    Sequenz-ID,
    PROMOTE_STATUS,
    PROMOTE_TITLE,
    VERÖFFENTLICHUNGSDATUM
    AUS (
      (WÄHLEN
        PROMOTE_ID,
    Sequenz-ID,
    PROMOTE_STATUS,
        PROMOTE_TITLE,
        VERÖFFENTLICHUNGSDATUM 
       VON SYS_TEXT_PROMOTE
        WO
        ENABLED_FLAG = "1"
        UND PROMOTE_STATUS=0
        UND SORT_ID = #{params.sortId}
        Sortieren nach RELEASE_DATE DESC,LAST_UPDATE_DATE DESC) c)

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • MySQL Union-Syntax-Codebeispielanalyse
  • Studie zu den Standardregeln des mySQL UNION-Operators
  • Grundlegende Verwendung von UNION und UNION ALL in MySQL
  • Kurze Analyse von MySQL Union und Union All
  • So führen Sie in MySQL mehrere Datenzeilen zu einer Zeile zusammen
  • MySQL verwendet Union, um die Daten zweier Tabellen zusammenzuführen und anzuzeigen

<<:  So überwachen Sie den Linux-Serverstatus

>>:  Detaillierte Erklärung des VueRouter-Routings

Artikel empfehlen

Detaillierte Erklärung der Verwendung von publicPath in Webpack

Inhaltsverzeichnis Ausgabe Ausgabepfad Ausgabe.öf...

Wie erreicht MySQL eine Master-Slave-Synchronisierung?

Die Master-Slave-Synchronisierung, auch Master-Sl...

Tutorial zur Docker-Installation in einer Linux-Umgebung

1. Installationsumgebung Docker unterstützt die f...

SASS Style Programmierhandbuch für CSS

Da immer mehr Entwickler SASS verwenden, müssen w...

Linux nutzt duale Netzwerkkartenbindung und Schraubendreherschnittstelle

Was ist eine Bindung? NIC-Bond ist eine Technolog...

MySQL: Praktische Erfahrung mit der Verwendung der Insert-Anweisung

Inhaltsverzeichnis 1. Mehrere Syntaxen von Insert...

So ändern Sie das ursprüngliche Passwort von MySQL auf dem MAC

Problembeschreibung: Ich habe einen Mac gekauft u...

TypeScript verwendet vscode, um den Codekompilierungsprozess zu überwachen

Installieren Installieren Sie den TS-Befehl globa...

MySQL-Fallanalyse der Transaktionsisolationsebene

Inhaltsverzeichnis 1. Theorie SERIALISIERBAR WIED...

Sollte ich beim Erstellen einer Website die Kodierung UTF-8 oder GB2312 verwenden?

Beim Öffnen ausländischer Websites werden häufig ...

8 Tipps für Vue, die Sie nach dem Lesen lernen werden

1. Verwenden Sie immer :key in v-for Die Verwendu...