2012-11-15 46 views
0

我的問題是爲什麼這個查詢不起作用?SQL使用子句不起作用

Cursor c = db.rawQuery("SELECT * FROM tbl_staff WHERE PMajor = '%" + spin.getSelectedItem().toString() + "%'", null); 

Cursor c:這是處理我的查詢

tbl_staff光標:我的表包括PNamePMajorPCert

spin:是微調有,我需要爲我的數據庫查詢值。

當我使用:

if (c.moveToNext()) 
else (log.d("error query","couldn't do the query!");) 

它去else聲明,moveToNext()不起作用。

+0

您是否先執行moveToFirst()方法? – fedepaol

+0

你是什麼意思?如果你的意思是在if語句中使用它並有一些代碼,那麼是的 –

+0

根據http://developer.android.com/training/basics/data-storage/databases.html,你應該調用moveToFirst()來將光標置於第一個入口。 – fedepaol

回答

2

代替使用=,檢查是否相等,使用關鍵字LIKE,它匹配的圖案。

Cursor c = db.rawQuery("SELECT * FROM tbl_staff WHERE PMajor LIKE '%" + spin.getSelectedItem().toString() + "%'", null); 
+0

你好SQL注入 – CodesInChaos

+0

與「LIKE」相同的結果 –