一尘不染

MYSQL从数据库中搜索数组中的ID

sql

我已经完成搜索,但是发现的一切都与我需要的方式相反。

我有一个数据库,其中的一个字段是一串ID,我想在数据库中已有的那个数组中搜索某个ID。

例如,在数据库中,它看起来像这样:

ID    Title    Spots Used
 1    test 1    1,3,5,8
 2    test 2    4,2,5,6,7
 3    test 3    3,5,2,1

我需要搜索使用了ID为2的广告系列(应同时返回测试2和测试3)使用了多少个广告系列。

最好的方法是什么?到目前为止,我可以查询整个内容,逐行运行,并strpos搜索编号,但是问题是,当我最终获得10个以上的上传点时,1会返回1、10、11、12
13等

如果我需要提供更多信息,请告诉我。


阅读 264

收藏
2021-05-16

共1个答案

一尘不染

如果这些ID以逗号分隔存储,则可以使用
FIND_IN_SET()

SELECT * FROM `table` WHERE FIND_IN_SET('2',`column_name`) >0

但是,如果您能够更改架构然后首先规范化表结构,则存储逗号分隔的值是个坏主意

数据库规范化

2021-05-16