2009-12-13 71 views
0

我正在尋找一種方法來搜索包含*的字符串數據類型的列 - 問題是星號或星號是保留符號。以下查詢無法正常工作:MS Access:在列中搜索星號/星號

select * from users where instr(pattern,"*") 

如何編寫Access查詢以搜索列以查找星號?

回答

2

耶,發現了這件事由我自己:

select * from users where instr(pattern,chr(42)) 
+0

在哪個版本的AF訪問你測試呢? 2007年不起作用 – 2009-12-13 07:01:15

+0

它應該有一個布爾條件 - 就像'where instr(pattern,chr(42))> 0'? – 2009-12-13 07:03:38

+0

是的,它應該。 – 2009-12-13 07:06:00

2

只需使用

select * from users where instr(pattern,"*") > 0 

Access: Instr Function

在Access中,InStr函數返回 第一次出現的位置另一個字符串中的一個字符串的 。

4

您可以通過使用方括號在訪問搜索reseverd charaters:

select * from users where pattern like "*[*]*" 
1

使用ALIKE功能,因爲它的通配符不包括*如

SELECT * FROM Users WHERE pattern ALIKE '%*%'; 

(由DWF編輯:見@ onedayone的useful explanation of ALIKE

+0

小心繪製LIKE和ALIKE運算符之間的區別?我無法快速搜索在Access中有助於找到區別。就我所知,從實驗中可以看出,ALIKE允許使用SQL Server兼容的通配符,而無需將數據庫設置爲使用SQL 92模式。 – 2009-12-14 22:35:26

+0

我通常會這樣做,但這裏的差異並不相關:您只需要知道ALIKE將*字符視爲文字。有關更多詳情,請參閱我的其他答案http://stackoverflow.com/questions/719115/microsoft-jet-wildcards-asterisk-or-percentage-sign/720896#720896 – onedaywhen 2009-12-15 09:36:26

+0

我編輯到你的答案引用你的其他答案(我已經見過) 。當我認爲合適時,請參閱我*將*編輯。 – 2009-12-15 23:52:23