如何为行插入和更新多个枚举值?

时间:2013-06-27 14:40:59

标签: mysql sql enums

在我阅读this answer时,我猜是否可以使用ENUM插入和更新行的多个MySQL“已检查”值。

实体示例:

TABLE
id INT auto_increment
day_list ENUM ('1','2','3,'4','5,'6','7')
gender ENUM ('m','f')

我尝试了以下方法(以指定检查周末和两个性别):

INSERT INTO TABLE (day_list,gender) VALUE ('{6,7}','{m,f}')

它不会返回任何错误,并正确插入记录,但day_list和性别字段为空。

所以,它似乎不适用于mySQL。而且在phpMyAdmin(3.2.0)中似乎不可能,因为值是通过单选按钮(而不是复选框)来检查的。

有关如何使其有效的任何想法?或者另一种解决方案是记录并选择没有LIKE请求且没有关联实体的那些检查日(如TABLE_DAYS和TABLE_GENDER)?

1 个答案:

答案 0 :(得分:3)

在MySQL中,ENUM类型字段只能接受一个值。

在phpMyAdmin中进行一些搜索后,似乎SET类型可以完成这项工作。

所以实体:

TABLE
id INT auto_increment
day_list SET ('1','2','3,'4','5,'6','7')
gender SET ('m','f')

如何插入:

INSERT INTO TABLE (day_list,gender) VALUE ('6,7','m,f')

关于搜索价值观:

  • 如果值是整数:IN可以在订购数据时起作用。
  • 如果值不是整数:FIND_IN_SET是必需的,搜索数据不需要订购。

限制:SET类型只接受64个成员,因为需要更多的外国协会实体。