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:
|
<<: So überwachen Sie den Linux-Serverstatus
>>: Detaillierte Erklärung des VueRouter-Routings
Inhaltsverzeichnis Ausgabe Ausgabepfad Ausgabe.öf...
Die Master-Slave-Synchronisierung, auch Master-Sl...
1. Installationsumgebung Docker unterstützt die f...
Da immer mehr Entwickler SASS verwenden, müssen w...
Was ist eine Bindung? NIC-Bond ist eine Technolog...
Inhaltsverzeichnis 1. Mehrere Syntaxen von Insert...
Vorwort Hinweis: Die Testdatenbankversion ist MyS...
Einführung Wenn wir die MySQL-Datenbank verwenden...
Installationsmethode für komprimierte MySQL 8.0-P...
1. Laden Sie die Software herunter 1. Gehen Sie a...
Problembeschreibung: Ich habe einen Mac gekauft u...
Installieren Installieren Sie den TS-Befehl globa...
Inhaltsverzeichnis 1. Theorie SERIALISIERBAR WIED...
Beim Öffnen ausländischer Websites werden häufig ...
1. Verwenden Sie immer :key in v-for Die Verwendu...