2013-06-27 31 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個成員,因爲需要更多的外國協會實體。

相關問題