MySQL枚举字段按索引插入

MySQL枚举字段按索引插入,mysql,enums,insert,Mysql,Enums,Insert,有一个简单的mysql表“mytable”,其中有一列名为“fruit”,这是一个包含“apple”、“orange”和“mango”的枚举字段 我们可以使用mytable中的SELECT FROUT+0访问枚举的索引值 但是,我们如何通过索引插入枚举字段,而不是插入mytable水果值“apple”,其中 我尝试插入mytable水果+0值“1”,其中。。。但它不起作用,在这里或网上找不到任何相关主题 谢谢。枚举是专门为消除了解索引值的需要而设计的。通过使用索引值,您特别违背了枚举存在的原因

有一个简单的mysql表“mytable”,其中有一列名为“fruit”,这是一个包含“apple”、“orange”和“mango”的枚举字段

我们可以使用mytable中的SELECT FROUT+0访问枚举的索引值 但是,我们如何通过索引插入枚举字段,而不是插入mytable水果值“apple”,其中

我尝试插入mytable水果+0值“1”,其中。。。但它不起作用,在这里或网上找不到任何相关主题


谢谢。

枚举是专门为消除了解索引值的需要而设计的。通过使用索引值,您特别违背了枚举存在的原因


如果您不想使用枚举值进行插入,那么我建议将水果名称拆分为一个单独的表,并将mytable.fruit作为指向此新水果表的外键。然后插入一个ID值而不是“apple”。

一个简单的
插入mytable(水果)值(1)应该可以工作


您不需要像select中那样进行任何
水果+0
转换。

感谢您的回答和解释。我完全同意你的看法。但我想知道是否有办法做到这一点?这个答案是正确的。您可以简单地使用数字索引作为值;但是,请注意,如果对枚举值重新排序,您需要自己跟踪索引。它们从0开始编制索引,因此您的第一项位于索引0。我会投票给你这个答案,但是OP,请注意,这并不是实践中最好的事情。谢谢!现在可以了@wilmoore,事实上,索引将在访问开始时生成,并且不会对枚举值重新排序,除非mysql将自动对其重新排序?警告:枚举是基于1的,至少在mysql中是这样的:“列规范中列出的元素被分配了索引号,从1开始。空字符串错误值的索引值为0。“