我一直試圖在android應用程序的搜索中使用通配符,並且一直出現錯誤。通配符在SQLite中不工作
我執行使用下面的字符串在我的應用程序搜索:
Cursor c_name = b.query("namedrxns", new String[] { "_id", "name" },
"name LIKE %?%", new String[] { query }, null, null, null);
當我使用name LIKE %?%
或name=%?%
我得到一個「近‘%’:語法錯誤:,編譯時:選擇_id,名稱FROM namedrxns WHERE name =%?%「錯誤。
但name LIKE '%?%'
或name='%?%'
我得到,而不是「綁定或列索引超出範圍:處理0x40cb70」
可能有人請告訴我,我做錯了嗎?
謝謝!
如何將通配符添加到傳入的變量中,而不是在查詢中使用它? – 2010-08-28 23:11:17
完美地工作,謝謝!這對我來說似乎有點愚蠢,但沒關係。如果你把它作爲答案,我會很高興打勾你:) – 2010-08-28 23:33:13
雖然聽起來很正確。綁定的字符串參數基本上會包含引號和內容,所以您最終可能會得到類似於name =%'David'%這個無效的SQL。我的SQL知識並不完全符合標準,所以在這裏完成的工作比我所能說明的要多一點,但是這應該讓你知道爲什麼必須按照OMG小馬所描述的來完成。 – 2010-08-29 01:33:17