2011-12-30 31 views
3

我試圖尋找一種與A或B或C開頭的名字,所以我用這個查詢:如何使用[charlist]通配符在android系統SQL搜索

db.rawQuery("SELECT _id, name, freq FROM dicttable WHERE name LIKE '[A,B,C]%' 
    ORDER BY freq DESC LIMIT 0, 8", null); 

它並沒有給空的結果或失敗的結果,它只是給了空值,這意味着它什麼都沒有找到。任何人都可以引導我使用這種方法?

回答

4

你不能用LIKE做那種事情。你需要使用GLOB像這樣:

...WHERE name GLOB '[ABC]*' ... 

*意味着任何東西,所以這將匹配以A,B,或C開頭,有別的以下的任何名稱。

+0

icic,謝謝指出,然而Android不支持REGEXP,這意味着我也不能使用它,任何其他方法搜索以/ b/c開頭的名稱而不使用REGEXP'^ [ABC]'? – Ricky 2011-12-30 02:05:15

+0

我沒有意識到這一點。你也可以使用GLOB。這是一個非常相似的語法,我會編輯我的答案。 – Dan 2011-12-30 02:08:02

+0

它的工作原理,非常感謝〜!順便說一下,我可以搜索一個以/ b/c和第二個單詞d/e/f開頭的單詞,所以我把我的代碼作爲GLOB'[ABC] *''[DEF]'? – Ricky 2011-12-30 02:10:29