SQL选择查询来自逗号分隔的字符串

时间:2015-04-26 02:32:51

标签: mysql sql sql-server database

我的表格中包含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

1 个答案:

答案 0 :(得分:1)

而不是在主表中使用逗号分隔值的“位置”列,你真正应该拥有的是第二个表。我将打电话给你的第一个表inventory_item并假设你正在尝试跟踪该库存所在的位置(因为你没有说明你的应用程序做了什么)。

因此,添加一个名为inventory_item_location的表,其中包含列:

id,inventory_item_id,location

您的inventory_item_location表中每个位置都有一行,而inventory_item_id将是inventory_item表的ID。那么您只需查询inventory_item_location表,查找您正在寻找的任何行业。而且你知道那个地方有什么物品。