Ordine MYSQL di Mi piace / Non mi piace e popolarità

Ho una tabella di commenti che include Mi piace e Non mi piace, ora ho problemi con l’ordine corretto ..

In realtà il mio sistema mostra i commenti con il maggior numero di Mi piace in cima.

Sto cercando qualcosa di simile su YouTube.

Significa che il commento con 100like / 100dislikes è più alto di 1/1 ..

Spero che questo sia comprensibile 🙂

Questo è un problema classico come classificare upvote / downvote, più / meno, like / antipatia e così via. Esistono alcune soluzioni possibili ma possono dare risultati errati in condizioni specifiche.

Raccomando caldamente di leggere e utilizzare gli ordini come in How Not To Sort By Average Rating ordinata How Not To Sort By Average Rating

PROBLEMA:

Hai bisogno di una sorta di “punteggio” per ordinare.

WRONG SOLUTION # 1 : Score = (Positive ratings) – (Valutazioni negative)

SOLUZIONE SBAGLIATA # 2: Punteggio = Valutazione media = (Voti positivi) / (Voti totali)

SOLUZIONE CORRETTA: Punteggio = Limite inferiore dell’intervallo di confidenza del punteggio di Wilson per un parametro di Bernoulli

inserisci la descrizione dell'immagine qui

Codice di esempio (puoi adattarlo facilmente alle tue esigenze):

 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;