MySQL speichert ENUM-Werte intern als Ganzzahlschlüssel (Indexnummern), um auf ENUM-Mitglieder zu verweisen. Der Hauptgrund dafür, keine ganzzahligen Werte in ENUM-Spalten zu speichern, besteht darin, dass MySQL am Ende offensichtlich auf den Index und nicht auf den Wert verweist und umgekehrt.
Das folgende Beispiel kann es verdeutlichen:
mysql> Create table enmtest(Val ENUM('0','1','2')); Query OK, 0 rows affected (0.18 sec) mysql> Insert into enmtest values('1'),(1); Query OK, 2 rows affected (0.19 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> Select * from enmtest; +-----+ | Val | +-----+ | 1 | | 0 | +-----+ 2 rows in set (0.00 sec)
Hier haben wir „1“ als Zeichenfolge eingefügt und versehentlich auch eine Zahl 1 ohne Anführungszeichen eingefügt. Verwirrenderweise verwendet MySQL unsere numerische Eingabe als Indexwert, der eine interne Referenz auf das erste Element in der Mitgliederliste (d. h. 0) ist.
Das obige ist der detaillierte Inhalt vonWarum sollten wir Zahlen nicht in MySQL-ENUM-Spalten speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!