SQL查询,用于获取以逗号分隔的字段中存在值的行

时间:2011-11-02 13:05:28

标签: mysql

什么是查询 - >如何获取其列由数据逗号分隔值组成的表内容如何检查该值是否存在于该列中然后选择该产品的ID

id   productname  poduct_cat_id
1    abc          2,3,4
2    def          3,4
3    efg          1,2,5

如何检查product_cat_id中的3并获取产品名称和ID

输出:result [id] = 1         导致[产品] = ABC

5 个答案:

答案 0 :(得分:2)

我同意Phil上面的评论。

对于您的表格,您可以使用FIND_IN_SET功能 -

SELECT * FROM table WHERE FIND_IN_SET(3, product_cat_id);

答案 1 :(得分:1)

如果在字段中添加前导和尾随逗号,则可以使用简单的表达式来选择感兴趣的行。

SELECT * FROM table
WHERE CONCAT(',', product_cat_id, ',') LIKE '%,3,%'

答案 2 :(得分:1)

我估计FIND_IN_SET function将成为你的朋友。

答案 3 :(得分:0)

select id, productname
from table
where product_cat_id like '%,3,%'
or product_cat_id like '3,%'
or product_cat_id like '%,3'

答案 4 :(得分:-1)

如果你不考虑改变表的结构......视线:

这是一个蹩脚的查询:

SELECT `id`,`productname` 
FROM `place_table_name_here` 
WHERE `poduct_cat_id` LIKE '%3%';

但它会给你答案。