2013-06-27 35 views
2

当我读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)的已检查日期?

回答

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个成员,因为需要更多的外国协会实体。

相关问题