在Access SQL查询中将STRING拆分为OR

时间:2019-06-17 14:14:20

标签: sql ms-access

首先,我会说我对SQL的了解很少,这就是为什么我自己没有尝试这样做的原因。 我要实现的目标如下。我有一个带有几个唯一ID的字符串,我试图用它们通过查询来检索表的几行。

mystring = 26,28,29,30

我的目标是到达表“ PartsList”,并从第26、28、29和30行中检索“名称”字段。

我将如何处理?

编辑:这是我以前用来检索仅一行信息的内容:

SELECT PartsList.ID, PartsList.Name, 
FROM PartsList
WHERE (((PartsList.Part_Number)=[Forms]![View_Parts]![Name]));

预先感谢,拉斐尔。

2 个答案:

答案 0 :(得分:1)

您可以使用LIKE运算符:

SELECT Name 
FROM PartsList
WHERE (',' & mystring & ',') LIKE ('*,' & ID & ',*');

如果mystring可能包含空格,请使用REPLACE()删除它们:

SELECT Name 
FROM PartsList
WHERE (',' & REPLACE(mystring, ' ', '') & ',') LIKE ('*,' & ID & ',*'); 

答案 1 :(得分:0)

您可以使用VBA将值列表合并到SELECT语句中。

strSelect = "SELECT pl.ID, pl.Name FROM PartsList AS pl " & _
    "WHERE pl.Part_Number IN (" & mystring & ");"

该查询应返回我认为您想要的结果。