错误:android.database.sqlite.SQLiteException:在“WHERE”附近:语法错误:,在编译时:

问题描述:

Cursor cursor = db.rawQuery("SELECT id,no,name,lastname FROM mytable WHERE " + 
            "id = (SELECT MIN(id) and no=0 FROM mytable); ",null); 

我在下面得到该错误,请你帮助我吗?错误:android.database.sqlite.SQLiteException:在“WHERE”附近:语法错误:,在编译时:

我想要的是检索具有最小ID其中无= 0在mytable的....

Error:android.database.sqlite.SQLiteException: near "WHERE": syntax error: , while compiling:

,无需了解SQLite的语法太多的细节,我猜你的子查询ISN记录格式不正确。

尝试

SELECT id, no, name, lastname FROM mytable WHERE 
     id = (SELECT min(ID) FROM mytable WHERE no = 0) 

SELECT id, no, name, lastname FROM mytable WHERE 
     id = (SELECT min(ID) FROM mytable) AND no = 0 

取决于你的解释是什么(但它听起来就像是第一个)。首先会以最小id返回行与还的0 no,但第二个查询将返回最低id然后为0的

+0

+1 no用它来选择行 - 但是,你可能想添加一个解释,说明两个陈述之间的区别是什么,以便进一步澄清。 :) – Tim 2012-04-12 02:35:09

+0

谢谢,我做了编辑(希望没有进一步混淆)。我也在我的本地机器上的sqlite3中检查过它,它似乎是正确的。 – ravuya 2012-04-12 02:41:28

+0

感谢您的回复,我试过那一个,光标cursor = db.rawQuery(“SELECT id,no,name,lastname FROM mytable WHERE id =(SELECT min(ID)FROM mytable WHERE no = 0);”,null) ;但是,我仍然有一个错误消息..... android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1 – 2012-04-12 02:47:58