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 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!