刚开始用MYSQL,一直没注意到这个类型,它有什么优点?或者说如果存储内容都是短字符串的话,它跟varchar有何区别?
enum在底层的存储方式是以整型进行存储的
比如这样的字段
sex enum('male' , 'female' , 'both' , 'unknow')
在查询时
where sex='male'
和where sex=1是等效的
enum 在数据库非严格模式有坑 会允许 null 和 '' 插入
建议数据库连接时设置模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,STRICT_ALL_TABLES
2 回答1.4k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答1.4k 阅读
1 回答1.1k 阅读✓ 已解决
2 回答817 阅读✓ 已解决
例如下面两个字段:
name
字段可以插入任意字符串。sex
字段只允许插入male , female , both , unknow
中的其中之一,不在范围内的值会报错。enum
相比较varchar
就更加规范些,你在程序中限定也一样可以做到。对于性能比较的话,就得等待高手来解答了.....