У меня есть таблица базы данных, в которой хранятся товары. Каждый продукт может иметь несколько цветов. Каждый цвет представлен своим идентификатором, а не текстовым описанием, таким как «Красный», «Желтый» и т. Д. Когда массив $_POST['colour']
вставляется в строку (разделенную запятыми), он затем сохраняется в таблице:
product_id | colour
----------------------
1 | 1,2
2 | 10
3 | 7,9
Недавно я попытался создать форму поиска, в которой можно было бы выбрать количество цветов и выполнить поиск в таблице базы данных, чтобы узнать, есть ли какие-либо продукты, которые содержат хотя бы один из цветов в массиве поиска. Поэтому, если посетитель хотел увидеть товары для цветов 1 и 9, мне нужно найти в столбце «цвет» эти два значения.
Я не могу использовать WHERE colour IN (1,9)
, потому что я думаю, что это работает, только если у вас есть одно значение в столбце (а не разделенный массив из нескольких значений). Также я не могу использовать WHERE colour LIKE 1 OR WHERE colour LIKE 9
, потому что он будет возвращать продукты с идентификатором цвета 10 или 11 или 12 и т. Д.
Кто-нибудь знает, как я могу это сделать?