使用rawquery和execSQL之间的确切区别是什么?在android活动中编写查询时,何时使用rawquery以及何时使用execSQL?
我试图删除一个表中没有相应ID的所有行在另一个表中.由于SQLite显然不支持删除中的连接,因此我尝试按以下方式执行操作:
DELETE FROM my_table WHERE my_id NOT IN (SELECT _id FROM my_table2);
Run Code Online (Sandbox Code Playgroud)
但是,我显然不能使用rawQuery,因为它返回一个游标,所以我必须使用delete函数.我在使用这个工作时遇到了一些麻烦.这是我正在尝试的查询:
mDb.delete("my_table", "my_id NOT IN ?", new String[]{"(SELECT _id FROM my_table2)"});
Run Code Online (Sandbox Code Playgroud)
谢谢.
我总是使用下面的代码来获取所有信息
但我有问题c.movetoNext导致跳过结果集的第一行
请告诉我表面背后真的发生了什么,这样我才能完全理解它
SQLiteDatabase db;
Cursor c = db.query("pic", null, null, null, null,null, null);
c.moveToFirst();
while(c.movetoNext)
{
//do something
//example: String a=c.getString(0);
}
Run Code Online (Sandbox Code Playgroud)