Mysql 使用WHERE和逗号值的SQL

Mysql 使用WHERE和逗号值的SQL,mysql,sql,csv,codeigniter,where-clause,Mysql,Sql,Csv,Codeigniter,Where Clause,我有一个product_id列,它在文本中包含数据30ed1476c6d04337b02f783079c2290f,a3b14b2d6034993cde6bf120a059e。我梳理了2个产品id,并使用内爆将其保存到db。现在我的问题是如何使用1个产品id获取数据 例如,从表1中选择*,其中product_id=30ed1476c6d04337b02f783079c2290f您应该首先努力修复数据模型;您应该有一个单独的映射表,其中每个值将存储在单独的行中。在关系表中存储csv数据是许多弊病的

我有一个product_id列,它在
文本中包含数据
30ed1476c6d04337b02f783079c2290f,a3b14b2d6034993cde6bf120a059e
。我梳理了2个产品id,并使用内爆将其保存到db。现在我的问题是如何使用1个产品id获取数据


例如,
从表1中选择*,其中product_id=30ed1476c6d04337b02f783079c2290f

您应该首先努力修复数据模型;您应该有一个单独的映射表,其中每个值将存储在单独的行中。在关系表中存储csv数据是许多弊病的根源。见:

也就是说,对于当前模式,您可以使用:


您的第一项工作应该是修复数据模型;您应该有一个单独的映射表,其中每个值将存储在单独的行中。在关系表中存储csv数据是许多弊病的根源。见:

也就是说,对于当前模式,您可以使用:


使用类似于
来代替mysql字段中的
逗号列表。在使用此结构之前,请先查找规范化。这看起来像是糟糕的数据库设计,请阅读表1中的SELECT*,其中产品id如“%30ED1476C6D04337B02F78079C2290F%”使用
而不是
,mysql字段中的
逗号列表不可搜索。在使用此结构走得太远之前,请查找规范化。这看起来像是糟糕的数据库设计,请阅读表1中的SELECT*,其中产品id为“%30ED1476C6D04337B02F78079C2290F%”
select *
from table1
where find_in_set('30ed1476c6d04337b02f783079c2290f', product_id)