Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL-Reihenfolge nach Vorlieben/Abneigungen und Beliebtheit

Dies ist ein klassisches Problem, wie man Upvote/Downvote, Plus/Minus, Like/Dislike und so weiter einordnet. Es gibt einige mögliche Lösungen, aber sie können unter bestimmten Bedingungen zu falschen Ergebnissen führen.

Ich empfehle dringend, die Reihenfolge wie in How Not To Sort By Average Rating

Beispielcode (Sie können ihn leicht an Ihre Bedürfnisse anpassen):

SELECT id, ((positive + 1.9208) / (positive + negative) - 
                1.96 * SQRT((positive * negative) / (positive + negative) + 0.9604) / 
                       (positive + negative)) / (1 + 3.8416 / (positive + negative)) 
       AS ci_lower_bound 
FROM your_tab 
WHERE positive + negative > 0 
ORDER BY ci_lower_bound DESC;