如何从表字段MySQL中的字符串中获取部分精确值

时间:2017-03-11 15:28:43

标签: php mysql

我得到了桌面促销,字段为store_id_list(VARCHAR)。我想在这里实现的是我希望这个促销可以在1个记录中的多个商店中使用,而不是使用多个记录,store_id_list值是以逗号分隔的store_id列表(例如:1,4,5,7,)< / p>

现在,我想得到表促销的记录,其中我有单个store_id值,例如:store_id = 5我怎么能在MySQL中做到这一点?我可以在单个查询中执行此操作吗?如果使用LIKE那么我更有可能得到15或45而不是5。

2 个答案:

答案 0 :(得分:1)

我的建议是规范化表格,并为每个商店/促销提供数据库记录。但它可以这样做:

确保列值的开头和结尾有逗号,如下所示:

store_id_list : ,1,4,5,7,

然后像这样查询:

... where store_id_list like '%,5,%'

答案 1 :(得分:0)

我认为您正在寻找FIND_IN_SET功能。例如:

SELECT * FROM tbl WHERE FIND_IN_SET('5', store_id) > 0;