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 Erläuterung des Datenreaktionsprinzips von Vue

Dieser Artikel richtet sich hauptsächlich an diej...

Mysql 5.7.17 Winx64-Installationstutorial auf Win7

Softwareversion und Plattform: MySQL-5.7.17-winx6...

Neues CSS3-Layout: ausführliche Flex-Erklärung

Flex-Grundkonzepte Flex-Layout (Flex ist die Abkü...

Auszeichnungssprache – CSS-Stil für Webanwendungen

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

So betten Sie mithilfe von Iframe andere Webseiten in eine Webseite ein

So verwenden Sie Iframe: Code kopieren Der Code l...

Front-End-Statusverwaltung (Teil 2)

Inhaltsverzeichnis 1. Wiederholen 1.1. Shop (Bibl...

So legen Sie die Umgebungsvariable PATH im Linux-System fest (3 Methoden)

1. In Windows-Systemen erfordern viele Softwarein...

So stellen Sie verschiedene Mausformen dar

<a href = "http: //" style = "c...

Javascript-Bereich und Abschlussdetails

Inhaltsverzeichnis 1. Geltungsbereich 2. Geltungs...

Implementierungsmethoden gängiger CSS3-Animationen

1. Was ist CSS Animations ist ein vorgeschlagenes...

Detaillierte Erklärung der Javascript-String-Methoden

Inhaltsverzeichnis Zeichenfolgenlänge: Länge char...

CentOS-System-RPM-Installation und -Konfiguration von Nginx

Inhaltsverzeichnis CentOS RPM-Installation und Ko...

Eine kurze Analyse zum Upgrade von PHP 5.4 auf 5.6 in CentOS 7

1. Überprüfen Sie die PHP-Version nach dem Aufruf...