Ich habe ein sehr einfaches Bewertungssystem in meiner Datenbank, in dem jede Bewertung als Enum gespeichert ist ('1', '- 1'). Um die Summe zu berechnen, habe ich versucht, diese Aussage zu verwenden:
%Vor%Das funktioniert gut für die positive 1, aber aus irgendeinem Grund wird die -1 zu 2 zerlegt.
Kann jemand helfen oder Anreiz bieten?
Oder sollte ich aufgeben und einfach die Spalte zu einem SIGNED INT (1) ändern?
Ja, ich würde vorschlagen, den Typ der Spalte zu ändern. Das Problem wird deutlich, wenn Sie das Dokument über den Aufzählungstyp lesen (das wird dringend empfohlen, dies nicht zu tun) Verwenden Sie Zahlen als Enumerationswerte!) - Der Index des Enum-Elements wird zurückgegeben, nicht der Enum-Wert selbst.
Diese Konvertierung in int
in MySQL für enum
ist nur möglich:
Ok Leute,
Hatte nur ein bisschen Zeit mit diesem. Ich habe gelernt, dass ich ENUMs nicht benutzen sollte, wo ganze Zahlen die Werte sind. Allerdings hatten wir jahrelange Daten und ich konnte die Datenbank nicht verändern.
Dieser böse Junge hat gearbeitet (verwandelt ihn in einen Charakter, dann in einen signierten Int).
%Vor%