首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL枚举与set

MySQL枚举与set
EN

Stack Overflow用户
提问于 2013-02-10 19:43:35
回答 6查看 68.9K关注 0票数 106

对于“枚举”和“集”的MySQL数据类型,使用一种和另一种有什么区别和优缺点?

示例数据类型:

  • 枚举(‘A’,'B','C')
  • set('A','B','C')

我知道的唯一区别是ENUM只允许选择一个值,而SET允许选择多个值。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-02-10 22:02:03

正如MySQL documentation所说的:

ENUM或SET列的

定义对输入到该列中的值起到约束作用。如果值不满足以下条件,则会出现错误:

ENUM值必须是列定义中列出的值之一,或者是其内部数字等效值。该值不能为错误值(即0或空字符串)。对于定义为ENUM('a','b','c')的列,'‘、'd’或'ax‘等值是非法的,因此会被拒绝。

设置值必须是空字符串或仅由列定义中列出的值组成的值,用逗号分隔。对于定义为SET('a','b','c')的列,诸如'd‘或'a,b,c,d’之类的值是非法的,因此会被拒绝。

票数 75
EN

Stack Overflow用户

发布于 2015-08-15 04:03:46

打个比方:

ENUM =单选字段(只接受列出的值,只能选择一个)

SET =复选框字段(只接受列出的值,可以选择多个)

票数 244
EN

Stack Overflow用户

发布于 2013-11-28 16:19:55

Enum和Set完全取决于需求,比如如果你有一个单选按钮列表,一次只能选择一个,那就使用Enum。如果您有一个复选框列表,其中一次可以选择多个项目,请使用set。

票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14797374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档