我的表格中包含location
列,其值为
row1: sector A, sector B, Sector c
row 2: sector B, sector f, Sector A
row 3: sector f
不,我正在寻找sql查询从这些行搜索逗号分隔的字符串说我可以用Sector A, sector f
搜索,在这种情况下,第1行,第2行,第3行的值应打印为Sector A
是在第1行,第2行和sector f
在第3行
我正在尝试这样的事情,但只匹配确切的字符串......
SELECT id , name FROM tb1 "+
" where Charindex(','+cast(location as varchar(8000))+',',',"+loc+",') > 0
和loc是扇区A,扇区f
答案 0 :(得分:1)
而不是在主表中使用逗号分隔值的“位置”列,你真正应该拥有的是第二个表。我将打电话给你的第一个表inventory_item并假设你正在尝试跟踪该库存所在的位置(因为你没有说明你的应用程序做了什么)。
因此,添加一个名为inventory_item_location的表,其中包含列:
id,inventory_item_id,location
您的inventory_item_location表中每个位置都有一行,而inventory_item_id将是inventory_item表的ID。那么您只需查询inventory_item_location表,查找您正在寻找的任何行业。而且你知道那个地方有什么物品。