Intereting Posts
Как отклонить платеж через IPN PayPal? Как получить уникальные значения из столбца и сгруппировать их со значениями из другого столбца? Доступ к данным из JSON в PHP Проблемы с ограничением размера загрузки функции PHP cURL отправить изображение и вернуть его с помощью json? Swift Mailer – не удается отправить почту и не удается найти журналы ошибок Как перенаправить с расположением заголовка в php при использовании ob_start? Проблема с тегом "Файловая система" Как сделать Http Video Streaming PHP или сайт рефери, чтобы сделать это? PDO в производительности mysql Оценить перенаправление PHP 404, связанное с неверным запросом на получение Сбои с переменной сеанса PHP после отправки формы HTML Tidy терпит неудачу в теге скрипта в строковой литературе JavaScript Остановить отправку с пустым значением ввода с помощью PHP Добавить изображение в Facebook с помощью Graph API (позволяет ограниченные фотографии) и добавить еще некоторые функции

Php и MySQL GROUP_CONCAT с запятой разделителя и поиск, где concat запятой

Можно ли выбрать в Group_concat с запятой разделителя и искать, где concat по запятой Здесь Мой пример mysql:

products_attributes_id |products_id| options_id| options_values_id 39 | 31 | 3 | 3 35 | 30 | 2 | 2 38 | 30 | 1 | 1 40 | 31 | 2 | 2 41 | 30 | 1 | 4 42 | 30 | 1 | 5 43 | 31 | 1 | 4 

Я хочу GROUP_CONCAT options_values_id

SELECT *, GROUP_CONCAT (options_values_id SEPARATOR ',') FROM products_attributes GROUP by products_id

 products_attributes_id | products_id | options_id | options_values_id | options_values_id 35 | 30 | 2 | 2 | 2,1,4,5 39 | 31 | 3 | 3 | 3,2,4 

Теперь моя проблема в том, как я найду product_id, выполнив поиск (option_values_id с запятой), если мое значение равно 1,2 или 2,4, тогда я получу только product_id = 30. Но если бы я получил значение 1,3, я ничего не получу. Поскольку product_id 30 не имеет option_values_id 3, а product_id 31 не имеет опции_values_id 1.

Я пробую этот код, но я не могу получить product_id

  SELECT * , GROUP_CONCAT( options_values_id SEPARATOR ',' ) FROM `products_attributes` WHERE CONCAT(',',options_values_id,',') LIKE '%,1,2,%' GROUP BY products_id 

Попробуй это:

 SELECT products_id , GROUP_CONCAT(options_values_id SEPARATOR ',') as ops FROM products_attributes GROUP by products_id HAVING FIND_IN_SET('1',ops) OR FIND_IN_SET('3',ops)