PROBLEM: Mysql konvertiert Enum zu Int

7

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?

    
NSjonas 23.07.2011, 22:12
quelle

5 Antworten

3

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.

    
ain 23.07.2011, 22:28
quelle
13

das ist was du willst

%Vor%     
Chris 03.07.2013 16:40
quelle
10

Diese Konvertierung in int in MySQL für enum ist nur möglich:

%Vor%     
Jiri Novak 29.09.2013 17:44
quelle
0

verwenden

%Vor%     
Sachin Khanna 01.05.2012 10:40
quelle
0

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%     
Daryl B 17.06.2013 00:34
quelle

Tags und Links