为什么不将数字存储到MySQL ENUM列中?
MySQL内部将ENUM值存储为整数键(索引号),以引用ENUM成员。不将整数值存储在ENUM列中的主要原因是,很明显,MySQL最终引用了索引而不是值,反之亦然。
示例
以下示例可以澄清它-
mysql> Create table enmtest(Val ENUM('0','1','2'));
mysql> Insert into enmtest values('1'),(1);
Records: 2 Duplicates: 0 Warnings: 0
mysql> Select * from enmtest;
+-----+
| Val |
+-----+
| 1 |
| 0 |
+-----+
2 rows in set (0.00 sec)在这里,我们将'1'作为字符串插入,并且偶然也将1作为数字插入(不带引号)。MySQL混淆地使用我们的数字输入作为索引值,即对成员列表中第一项(即0)的内部引用。
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短