为什么不将数字存储到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 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短