访问查询,其中条件类似于Table1.Field但Field是包含“*”的字符串类型

时间:2012-11-05 23:45:48

标签: ms-access

我正在尝试在访问中创建一个select查询,其中列Table2.FullNameField标准是“Like Table1.ShortNameField”。因此,如果Table2.FullNameField包含Table1.ShortNameField,则选择记录。两个字段都是字符串。问题是名称包含*。这是一个例子:

ShortNameField =“A * 01”

FullNameField =“A * 01:04”,“A * 15:01”,“A * 03:02”等

查询条件=“喜欢Table1.ShortNameField”=>像A * 01(其中*被解释为外卡)

上面的ShortNameField的预期/期望结果将是选择FullNameField为“A * 01:04”的记录,而是我用“A * 15:01”获取记录。

所以问题是如何让Like函数将短名称中的*视为字符串的字符而不是通配符?

2 个答案:

答案 0 :(得分:0)

您可以考虑更换角色:

SELECT  t.shortnamefield, t.fullnamefield
FROM Table t
WHERE Replace([fullnamefield],"*","|") 
     Like "*" & Replace([shortnamefield],"*","|") & "*"

答案 1 :(得分:0)

要转义LIKE子句中的特殊字符,一般规则是将字符括在[]中,例如[*]和[?]。

示例:

select * from x where y like "[*]*"

将为您提供表x中的所有记录,其中y字段以星号(*)开头。