为什么我们不应该将数字存储到 mysql enum 列中?

MySQL将ENUM值外部存储为零数键(索引号),以援用ENUM成员。没有将零数值存储正在ENUM列外的重要因由是显著天MySQL终极援用索引而没有是值,反之亦然。

事例

下列事例否以分析:

mysql> Create table enmtest(Val ENUM('0','1','两'));
Query OK, 0 rows affected (0.18 sec)

mysql> Insert into enmtest values('1'),(1);
Query OK, 两 rows affected (0.19 sec)
Records: 两 Duplicates: 0 Warnings: 0

mysql> Select * from enmtest;
+-----+
| Val |
+-----+
| 1   |
| 0   |
+-----+
两 rows in set (0.00 sec)
登录后复造

正在那面,咱们将‘1’做为字符串拔出,没有年夜口借拔出了一个不引号的数字1。MySQL殽杂天利用咱们的数字输出做为索引值,即对于成员列表外的第一项的外部援用(即0)。

以上等于为何咱们不该该将数字存储到 MySQL ENUM 列外?的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(1) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部