Heim > Datenbank > MySQL-Tutorial > Warum sollten wir Zahlen nicht in MySQL-ENUM-Spalten speichern?

Warum sollten wir Zahlen nicht in MySQL-ENUM-Spalten speichern?

WBOY
Freigeben: 2023-09-04 12:29:09
nach vorne
1274 Leute haben es durchsucht

为什么我们不应该将数字存储到 MySQL ENUM 列中?

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.

Beispiel

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)
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage