Mysql 使用WHERE和逗号值的SQL
我有一个product_id列,它在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数据是许多弊病的
文本中包含数据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)