如何使用方括号过滤数据?

时间:2013-09-17 06:38:07

标签: sql ms-access pattern-matching

我在MS Access中有一个文本字段,它有如下文本:

bla bla bla [hhh] bla bla bla [kkkd]
blo blo blo blo [ttt] blo blo blo [ppp]
jh asdjahsuz uizasdui  asudz j jksdf 

我正在尝试搜索该字段中包含“[somthing]”的所有记录。

SELECT pruefhinweis
FROM tb_bauteile
WHERE pruefhinweis  LIKE '%[%]%'

但是这个SQL不起作用,请你说我怎么能做这个工作?

3 个答案:

答案 0 :(得分:1)

在图案中匹配方括号不直观。请参阅帮助主题“在字符串比较中使用通配符”

只有括在括号内,才能使用特殊字符左括号([),问号(?),数字符号(#)和星号(*)直接匹配。您不能在组中使用右括号(])来匹配自身,但您可以在组外使用它作为单个字符。

使用DAO运行查询时,其中任何一个都将返回您想要的内容(例如,在使用查询设计器的Access会话中)。

SELECT b.pruefhinweis
FROM tb_bauteile AS b
WHERE b.pruefhinweis Like '*[[]*]*';

SELECT b.pruefhinweis
FROM tb_bauteile AS b
WHERE b.pruefhinweis ALike '%[[]%]%';

从ADO,你可以使用第二个查询或者这个......

SELECT b.pruefhinweis
FROM tb_bauteile AS b
WHERE b.pruefhinweis Like '%[[]%]%';

答案 1 :(得分:0)

SELECT pruefhinweis
FROM tb_bauteile
WHERE pruefhinweis  LIKE '*[*]*'

答案 2 :(得分:0)

试试这个:

SELECT pruefhinweis
FROM tb_bauteile
WHERE pruefhinweis LIKE '*[[a-z]]*';

SELECT b.pruefhinweis
FROM tb_bauteile AS b
WHERE b.pruefhinweis Like '*[[]*]*';