2013-06-27 2 views
2

Как я читал this answer, я думаю, если возможно вставить и обновить несколько «проверенных» значений для строки ENUM, с MySQL.Как вставлять и обновлять несколько значений перечисления для строки?

Entity пример:

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 участников, для получения дополнительной информации об ассоциации с иностранными гражданами.