2011-06-03 22 views
0

使用我的數據庫與特定number搜索行查詢時,我注意到,對於選擇的說法,如果我使用:Android的查詢選擇差異

String selection = NUMBER + " MATCH ?" 
String selectionArgs = new String[]{number} 

Cursor cursor1 = db.query(TABLE_NAME, null, selection, selectionArgs, null, null, null); 
cursor1.moveToFirst(); 

這將導致一個錯誤,因爲如果我用其中:

String selection = NUMBER + " = " + number; 

Cursor cursor2 = db. query(TABLE_NAME, null, selection, null, null, null, null); 
cursor2.moveToFirst(); 

這工作正常,沒有問題。那有什麼區別?

+0

logcat會說什麼有用嗎? – 2011-06-03 18:51:35

+0

它只是提供錯誤消息SQL Logic Error或Missing Database – Hank 2011-06-03 19:01:42

回答

0

從SQLite的文檔:。

「比賽運營商是爲比賽()應用程序定義功能的特殊語法的默認匹配()函數實現拋出一個異常,是不是真的有用的東西,但擴展可以用更有用的邏輯覆蓋match()函數。「

http://www.sqlite.org/lang_expr.html