Umtitel: Wie sortiere ich eine Tabelle basierend auf der Anzahl der Likes und der Zeitkorrelation in MySQL?
P粉771233336
P粉771233336 2023-09-09 09:22:12
0
1
421

Ich habe ein einfaches Problem: Es gibt zwei MySQL-Tabellen, eine speichert Fotos und die andere speichert Likes. Der Aufbau ist wie folgt:

表 `photos` - id, name, image_id
表 `likes` - id_photos, timestamp

Jetzt ist es ganz einfach, Fotos nach der Anzahl der Likes zu sortieren und die Top 3 zu erhalten. Sie können die folgende Abfrage verwenden:

SELECT photos.*
    , COUNT(likes.id) AS likes_count 
 FROM photos 
 LEFT JOIN likes ON photos.id = likes.id_photos 
 GROUP BY photos.id 
 ORDER BY likes_count DESC LIMIT 3;

Aber ich möchte eine zeitliche Korrelation hinzufügen, das heißt, neue Likes haben ein höheres „Gewicht“, auch wenn einige Fotos mehr Likes haben, sind sie älter und werden daher niedriger eingestuft als Likes. Weniger, aber neuere Fotos.

Ist es möglich, dieses Problem nur mit MySQL zu lösen? Oder ist eine zusätzliche Verarbeitung in PHP erforderlich?

P粉771233336
P粉771233336

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!