#id name product_id
1 chalam 1,2
2 satish 2,3
3 siva 3,4
4 gowtham 2,4
select id, name where product_id in(3);
预期输出:
satish
siva
答案 0 :(得分:2)
您可以在此处使用FIND_IN_SET
SELECT id, name
FROM yourTable
WHERE FIND_IN_SET('3', product_id) > 0;
请注意,尽管MySQL恰巧提供了FIND_IN_SET
,它可以在CSV字符串中搜索值,但通常我们应该避免使用此函数。将CSV数据存储在表中是不好的数据库设计。相反,您应该规范化数据。这是标准化表格的示例:
id | name | product_id
1 | chalam | 1
1 | chalam | 2
2 | satish | 2
2 | satish | 3
3 | siva | 3
3 | siva | 4
4 | gowtham | 2
4 | gowtham | 4
假设上表中给定的名称/标识仅与给定的product_id
关联一次,则可以将查询简化为:
SELECT id, name
FROM yourTable
WHERE product_id = 3;