Saya memiliki masalah yang sama, dengan bidang database dengan tipe "SET" yang merupakan tipe enum.
Saya mencoba menambahkan nilai yang tidak ada dalam daftar itu.
Nilai yang saya coba tambahkan memiliki nilai desimal 256, tetapi daftar enum hanya memiliki 8 nilai.
1: 1 -> A
2: 2 -> B
3: 4 -> C
4: 8 -> D
5: 16 -> E
6: 32 -> F
7: 64 -> G
8: 128 -> H
Jadi saya hanya perlu menambahkan nilai tambahan ke lapangan.
Membaca entri dokumentasi ini membantu saya memahami masalahnya.
MySQL menyimpan nilai SET secara numerik, dengan bit orde rendah dari nilai yang disimpan sesuai dengan anggota set pertama. Jika Anda mengambil nilai SET dalam konteks numerik, nilai yang diambil memiliki bit yang disetel sesuai dengan anggota set yang membentuk nilai kolom. Misalnya, Anda dapat mengambil nilai numerik dari kolom SET seperti ini:
mysql> SELECT set_col+0 FROM tbl_name; If a number is stored into a
Jika sebuah nomor disimpan ke dalam kolom SET, bit yang ditetapkan dalam representasi biner dari nomor tersebut menentukan anggota yang ditetapkan dalam nilai kolom. Untuk kolom yang ditentukan sebagai SET ('a', 'b', 'c', 'd'), anggota memiliki nilai desimal dan biner berikut.
SET Member Decimal Value Binary Value
'a' 1 0001
'b' 2 0010
'c' 4 0100
'd' 8 1000
Jika Anda menetapkan nilai 9 ke kolom ini, yaitu 1001 dalam biner, maka nilai SET pertama dan keempat anggota 'a' dan 'd' dipilih dan nilai yang dihasilkan adalah 'a, d'.