#mysql
#mysql
Вопрос:
для чего нужен запрос -> Как получить содержимое таблицы, столбец которой состоит из данных, разделенных запятыми, как проверить, присутствует ли это значение в этом coloumn, если оно присутствует, затем выберите этот идентификатор продукта
id productname poduct_cat_id
1 abc 2,3,4
2 def 3,4
3 efg 1,2,5
Как проверить 3 в product_cat_id и получить название и идентификатор продукта
вывод: результат [id]=1 результат [productname]= abc
Комментарии:
1. Какова структура вашей таблицы? Можете ли вы также предоставить образцы данных и желаемый результат, пожалуйста?
2. Реализуйте реальные отношения » многие ко многим «, и вы не столкнетесь с этими нелепыми проблемами
3. привет, я обновил свой запрос, пожалуйста, помогите мне ..!!!
Ответ №1:
Я согласен с комментарием Фила выше.
Для вашей таблицы вы можете использовать функцию FIND_IN_SET —
SELECT * FROM table WHERE FIND_IN_SET(3, product_cat_id);
Ответ №2:
Если вы добавите в поле начальную и конечную запятую, вы можете использовать простое выражение like для выбора интересующих строк.
SELECT * FROM table
WHERE CONCAT(',', product_cat_id, ',') LIKE '%,3,%'
Ответ №3:
Ответ №4:
select id, productname
from table
where product_cat_id like '%,3,%'
or product_cat_id like '3,%'
or product_cat_id like '%,3'
Ответ №5:
Если вы не рассматриваете возможность изменения структуры таблицы …:
Это неудачный запрос:
SELECT `id`,`productname`
FROM `place_table_name_here`
WHERE `poduct_cat_id` LIKE '%3%';
но это даст вам ответ.
Комментарии:
1. это не сработает .. предположим, что product_cat_id = ‘12,13,14’, ваш запрос вернет эту строку, даже если она не содержит id 3