Heim > Fragen und Antworten > Hauptteil
Die Tabelle, die ich in meinem Unternehmen verwende, ist die Punkteprotokolltabelle des Benutzers. Die Felder sind Benutzer-ID, Punkttyp (zu 1 hinzugefügt und auf 2 reduziert), Punkte, Zeitstempel.
Ich muss jeden Tag die Gesamtpunktzahl des Benutzers berechnen
Ich habe zunächst die Plus- und Minuspunkte zusammengefasst und dann das Array durchlaufen, um den Unterschied im Back-End-Programm zu ermitteln. Das ist äußerst ineffizient ? Verwenden Sie dann den Fall, um einen Fehler zu melden
SUM(CASE type=1 THEN `score` ELSE 0-`score`)
PHP中文网2017-05-24 11:35:10
应该是:
SUM(IF(type = 1, score, -score))
或者写得啰嗦些:
SUM(CASE WHEN type = 1 THEN score ELSE -score END)