MySQL枚举与SET

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

对于MySQL数据类型“enum”和“set”,使用一种与另一种不同的优缺点是什么?

示例数据类型:

  • 枚举(‘A’,‘B’,‘C’)
  • 集合(A,B,C)

我知道的唯一不同之处是ENUM只允许选择一个值,而SET允许选择多个值。

提问于
用户回答回答于

就像MySQL文档

ENUM或SET列的定义确实是对输入到列的值的约束。不满足这些条件的值会发生错误: ENUM值必须是列定义中列出的值之一,或其内部数值等效值。该值不能是错误值(即0或空字符串)。对于定义为ENUM(‘a’、‘b’、‘c’)的列,诸如‘’、‘d’或‘ax’之类的值是非法的,并被拒绝。 SET值必须是空字符串,或仅由列定义中以逗号分隔的值组成的值。对于定义为set(‘a’,‘b’,‘c’)的列,诸如‘d’或‘a,b,c,d’这样的值是非法的,因此被拒绝。

用户回答回答于

类比:

ENUM=无线电字段(只有可接受的值列出,只能选择一个)

SET=复选框字段(仅接受所列的值,可选择多个)

扫码关注云+社区