PROBLEM: Mysql Konvertierung von Enum nach Int
Habe ich ein sehr einfaches rating-system in meiner Datenbank, wo jeder Bewertung gespeichert ist, als ein enum('1','-1'). Berechnen Sie die vollständige versuchte ich mit dieser Aussage:
SELECT SUM(CONVERT(rating, SIGNED)) as value from table WHERE _id = 1
Dies funktioniert gut für die positive 1, aber für einige Grund der -1 analysiert werden, aus, um 2 ist.
Kann mir jemand helfen, oder bieten Schüren?
Oder sollte ich aufgeben und ändern Sie einfach die Spalte auf ein SIGNED INT(1)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, würde ich vorschlagen, ändern Sie den Datentyp der Spalte. Das Problem wird deutlich, wenn man Lesen doc über enum-Typ (was dringend empfohlen, nicht zu verwenden zahlen als enumeration-Werte!) - der index der enum-Element zurückgegeben, und nicht die enum-Wert selbst.
up
unddown
!dies ist, was Sie wollen
Diese Umwandlung zu
int
in MySQL fürenum
ist nur möglich:verwenden
Ok Jungs,
Hatte gerade ein bisschen eine bloße, von einer Zeit mit diesem. Ich habe gelernt, dass ich nicht verwenden Enumerationen, wo die ganzen zahlen sind die Werte. Allerdings hatten Wir Jahre im Wert von Daten, und ich konnte nicht die Datenbank geändert.
Dieser bad boy gearbeitet (drehen Sie es in ein Zeichen, dann in einen signed int).