对于“枚举”和“集”的MySQL数据类型,使用一种和另一种有什么区别和优缺点?
示例数据类型:
我知道的唯一区别是ENUM只允许选择一个值,而SET允许选择多个值。
发布于 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’之类的值是非法的,因此会被拒绝。
发布于 2015-08-15 04:03:46
打个比方:
ENUM =单选字段(只接受列出的值,只能选择一个)
SET =复选框字段(只接受列出的值,可以选择多个)
发布于 2013-11-28 16:19:55
Enum和Set完全取决于需求,比如如果你有一个单选按钮列表,一次只能选择一个,那就使用Enum。如果您有一个复选框列表,其中一次可以选择多个项目,请使用set。
https://stackoverflow.com/questions/14797374
复制相似问题