Задавайте вопросы, мы ответим
Вы не зашли.
Помогите пожалуйста разобраться.
Имеется стоблец color, которы может содержать сразу несколько цветов.
Значения записываются в этот столбец через разделитель (красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый ) Каким образом можно выбрать строки к примеру содержащие цвета (желтый, фиолетовый) или (голубой, красный, зеленый)? Более того, не известно сколько значений нужно искать, их может быть как одно так и несколько.
Неактивен
Вообще говоря, так делать не стоит.
Лучше завести таблицу "один ко многим".
Если же не можете, то функцией locate
https://dev.mysql.com/doc/refman/5.7/en … ion_locate
можете искать нужные цвета.
Неактивен
deadka написал:
Вообще говоря, так делать не стоит.
Лучше завести таблицу "один ко многим".
Если же не можете, то функцией locate
https://dev.mysql.com/doc/refman/5.7/en … ion_locate
можете искать нужные цвета.
Спасибо, за ответ! Т.е. Вы имеете ввиду, что нужна новая таблица типа:
id | red | blue | white | и т.д. Затем в эту таблицу производить запись 1, если цвет выбран и 0, если не выбран, и так для каждого столбца.
Неактивен
Я скорее имел в виду следующее:
таблица Ваших основным сущностей, например товаров.
goods
id description
1 стол
2 стул
и таблица цветов товаров
goods_color
goods_id color
1 green
1 blue
2 red
2 green
2 white
Можно поле color сделать ссылкой на таблицу справочник
color
1 red
2 green
3 blue
так надежнее.
Ваш же вариант плох тем, что Вам придется менять таблицу каждый раз, когда возникнет новый цвет.
Неактивен
Спасибо! Кажется понял. Пробовал так: WHERE FIND_IN_SET('white', color) and FIND_IN_SET('black', color) . Но так понимаю, если будет 30-40 значений, то отрабатывать будет долго. При этом запрос нужно будет создавать динамически.
Неактивен