Also schreibe ich eine Abfrage, um Daten aus der Datenbank auszuwählen und in einer Reihenfolge der Beliebtheit anzuzeigen. Ich verstehe, dass dies einfach genug ist zu tun, wenn es nur durch etwas wie ORDER BY numLikes DESC
oder etwas bestellt wurde, aber in diesem Fall möchte ich den Inhalt von numLikes
und datePosted
bestellen.Komplexe SQL-Abfrage - Populärer Inhalt
Wie würde ich den Inhalt so sortieren, dass der oberste Inhalt ab dem heutigen Datum angezeigt wird? Wenn es rein durch numLikes
sortiert wird, würde der oberste Inhalt nach oben schweben und dort bleiben. Ich möchte, dass diese Inhalte täglich sortiert werden. Dies ermöglicht ein System, in dem der Benutzer beliebte Posts vom vergangenen Tag, vergangenen Woche, vergangenen Monat und alle Top-Posts auswählen kann.
Könnte dies durch eine einzige SQL-Abfrage geschehen? Müsste eine SQL-Multi-Abfrage durchgeführt werden? Ist SQL mächtig genug, um dies zu tun, oder ist PHP erforderlich, um eine Rolle zu spielen?
Danke!
Sie können dies mit der Bestellung durch. Ich kann nicht wirklich einen Vorschlag machen, weil es nichts zu arbeiten gibt. Keine Tabellen, keine Daten, keine Geschäftsregeln. Was definiert einen "Top Post"? Für "heute" sollte es ziemlich einfach sein. where datePosted> dateadd (Tag, -1, konvertieren (Datum, getdate())) order by numLikes. Sie können für alle anderen Zeiträume die gleiche Datumsbereichslogik verwenden. –
Bitte fügen Sie ein Beispiel Ihrer Daten und was Sie erwarten als Ausgabe. –