Android SQLite如何限制删除
Android SQLite how to delete with limit
我只想从我的数据库中删除一行 table User.
我试过this,但我不知道如何使用SQLITE_ENABLE_UPDATE_DELETE_LIMIT
。
这是我的代码:
SQLiteDatabase sqLiteDatabase = this.openOrCreateDatabase("User", MODE_PRIVATE, null);
//sqLiteDatabase.execSQL("INSERT INTO user (name, age) VALUES ('jihyo', 10)");
sqLiteDatabase.execSQL("DELETE FROM user WHERE name ='jihyo' LIMIT 1");
Cursor c = sqLiteDatabase.rawQuery("SELECT * FROM user WHERE name = 'jihyo'", null);
int nameIndex = c.getColumnIndex("name");
int ageIndex = c.getColumnIndex("age");
c.moveToFirst();
do {
Log.v("name", c.getString(nameIndex));
Log.v("age", c.getString(ageIndex));
} while (c.moveToNext());
这是错误:
android.database.sqlite.SQLiteException: near "LIMIT": syntax error
(code 1): , while compiling: DELETE FROM user WHERE name ='jihyo'
LIMIT 1
试试这个:
db.execSQL("Delete from user where user_id IN (Select user_id from user where name = 'jihyo' limit 1)");
[更新]:=
不适用于 LIMIT
操作,因此您需要像这样:
Cursor c = db.execSQL("Select user_id from user where name = 'jihyo' limit 1");
if (c.moveToFirst()){
String id = c.getString(0);
db.execSQL("Delete from user where user_id = "+id);
}
您不能在删除查询中应用限制,因为 DELETE Clause 没有 LIMIT
所以你可以 Select 使用 SELECT 查询单个记录并在基础上应用 DELETE
所选查询
例如。
DELETE FROM user WHERE id IN
(SELECT id FROM user
WHERE name = 'jihyo'
LIMIT 1);
注意:您可以使用'='代替'IN'
我只想从我的数据库中删除一行 table User.
我试过this,但我不知道如何使用SQLITE_ENABLE_UPDATE_DELETE_LIMIT
。
这是我的代码:
SQLiteDatabase sqLiteDatabase = this.openOrCreateDatabase("User", MODE_PRIVATE, null);
//sqLiteDatabase.execSQL("INSERT INTO user (name, age) VALUES ('jihyo', 10)");
sqLiteDatabase.execSQL("DELETE FROM user WHERE name ='jihyo' LIMIT 1");
Cursor c = sqLiteDatabase.rawQuery("SELECT * FROM user WHERE name = 'jihyo'", null);
int nameIndex = c.getColumnIndex("name");
int ageIndex = c.getColumnIndex("age");
c.moveToFirst();
do {
Log.v("name", c.getString(nameIndex));
Log.v("age", c.getString(ageIndex));
} while (c.moveToNext());
这是错误:
android.database.sqlite.SQLiteException: near "LIMIT": syntax error (code 1): , while compiling: DELETE FROM user WHERE name ='jihyo' LIMIT 1
试试这个:
db.execSQL("Delete from user where user_id IN (Select user_id from user where name = 'jihyo' limit 1)");
[更新]:=
不适用于 LIMIT
操作,因此您需要像这样:
Cursor c = db.execSQL("Select user_id from user where name = 'jihyo' limit 1");
if (c.moveToFirst()){
String id = c.getString(0);
db.execSQL("Delete from user where user_id = "+id);
}
您不能在删除查询中应用限制,因为 DELETE Clause 没有 LIMIT 所以你可以 Select 使用 SELECT 查询单个记录并在基础上应用 DELETE 所选查询 例如。
DELETE FROM user WHERE id IN
(SELECT id FROM user
WHERE name = 'jihyo'
LIMIT 1);
注意:您可以使用'='代替'IN'