提问者:小点点

使用带有逗号值的WHERE的SQL[重复]


我的product_id列在text数据类型中具有数据30ED1476C6D04337B02F783079C2290F,A3B14B2D2603499393CDE6BF120A059E。 我合并了2个产品id,并使用Implode将其保存到db。 现在我的问题是如何使用1产品ID获取数据。

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


共1个答案

匿名用户

您应该首先努力修复您的数据模型; 您应该有一个单独的映射表,其中每个值将存储在单独的行中。 将csv数据存储在关系表中是许多罪恶的根源。 请参阅:在数据库列中存储分隔列表真的那么糟糕吗?

也就是说,对于当前模式,可以使用字符串函数find_in_set():

select *
from table1
where find_in_set('30ed1476c6d04337b02f783079c2290f', product_id)