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
9 großartige JavaScript-Framework-Skripte zum Zei...
Inhaltsverzeichnis Same-Origin-Richtlinie Ajax-An...
1. Regulärer Ausdrucksabgleich ~ für Groß- und Kl...
Dieser Artikel zeigt ein verschiebbares Anmeldefe...
Obwohl Sie denken, dass es sich möglicherweise um...
Inhaltsverzeichnis Vorwort Erkennen des geöffnete...
1. Einleitung pt-query-digest ist ein Tool zum An...
Für eine Website ist dies die grundlegendste Funkt...
Da immer mehr Entwickler SASS verwenden, müssen w...
Denn die von Docker abgerufenen Basisimages wie C...
Problembeschreibung Auf mehreren Rechnern wurden ...
Datenbanktabelle A: Tabelle erstellen Task_Desc_T...
Inhaltsverzeichnis 1. Lvs-Einführung 2. Lvs-Lasta...
In diesem Artikelbeispiel wird der spezifische Co...
Wenn Sie HTML-Div-Blöcke verwenden und die Mitte ...