Rumah >pangkalan data >tutorial mysql >Mengapa kita tidak boleh menyimpan nombor ke dalam lajur MySQL ENUM?

Mengapa kita tidak boleh menyimpan nombor ke dalam lajur MySQL ENUM?

WBOY
WBOYke hadapan
2023-09-04 12:29:091276semak imbas

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

MySQL menyimpan nilai ENUM secara dalaman sebagai kunci integer (nombor indeks) untuk merujuk ahli ENUM. Sebab utama untuk tidak menyimpan nilai integer dalam lajur ENUM ialah jelas MySQL akhirnya merujuk indeks dan bukannya nilai dan sebaliknya.

Contoh

Contoh berikut boleh menjelaskan:

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)

Di sini, kami memasukkan '1' sebagai rentetan dan secara tidak sengaja juga memasukkan nombor 1 tanpa petikan. MySQL secara mengelirukan menggunakan input berangka kami sebagai nilai indeks, yang merupakan rujukan dalaman kepada item pertama dalam senarai ahli (iaitu 0).

Atas ialah kandungan terperinci Mengapa kita tidak boleh menyimpan nombor ke dalam lajur MySQL ENUM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam