为什么不将数字存储到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 生日广州男生祝福语简短