J'ai un site de contenu dans lequel chaque élément de contenu a créer la date et le nombre de vues. Je veux afficher le contenu dans cet ordre: date et vues mélangées, que dans les détails chaque vue doit avoir un certain poids et le paramètre date a aussi un poids, donc un élément de contenu avec la somme max de "poids" doit être premier. Y a-t-il une solution standard pour mon problème?Ordre des lignes dans la requête mysql par des colonnes mixtes
0
A
Répondre
0
Vraisemblablement, vous voulez pondérer l'âge (en minutes, peut-être) de votre message. En supposant que vous avez une colonne appelée TIMESTAMP, vous pouvez obtenir l'âge en minutes avec cette expression.
TIMESTAMPDIFF(MINUTE,`TIMESTAMP`,NOW())
Alors qu'est-ce qui rend un article intéressant? C'est votre schéma de pondération. Disons le nombre de vues (dans la colonne VIEWS) moins l'âge en minutes, pour plus de simplicité.
Alors, faites ce
ORDER BY (`VIEWS` - TIMESTAMPDIFF(MINUTE,`TIMESTAMP`,NOW())) DESC
et vous devriez commencer. Vous allez devoir vous amuser avec la formule pour la rendre logique, cependant.
CASE expression, mais il serait utile si vous étiez moins vague ... –