2012-11-15 42 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”相同的结果 –