【问题标题】:How to insert and update multiple enum values for a row?如何为一行插入和更新多个枚举值?
【发布时间】:2013-06-27 14:40:59
【问题描述】:

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

实体示例:

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和gender字段为空。

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

关于如何使它工作的任何想法?或者另一种解决方案来记录和选择那些没有LIKE 请求且没有关联实体(如 TABLE_DAYS 和 TABLE_GENDER)的已检查日期?

【问题讨论】:

    标签: mysql sql enums


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      相关资源
      最近更新 更多