Har*_*dik 2 sqlite flutter sqflite
Flutter 中的 SQFlite
以下代码删除给定 ID 的一行
Future<int> delete(int id) async {
Database db = await instance.database;
return await db.delete(myTable, where: 'id = ?', whereArgs: [id]);
}
Run Code Online (Sandbox Code Playgroud)
但是如何同时删除多个ID呢?
我有变量列表:
List<int> toBeDeleted = [5, 4, 8, ...]
我尝试在 whereArgs 中给出一个列表,但它不起作用。我正在寻找的是能够“一次删除选定的多个项目”。
您可以使用 SQLiteIN子句:
await db.delete(myTable, where: 'id IN (?,?,?)', whereArgs: [id1, id2, id3]);
Run Code Online (Sandbox Code Playgroud)
由于列表大小可以改变,因此具有适当的数字或?可以使用以下解决方案来解决:
List.filled(inArgsCount, '?').join(',')
var list = ['5', '4', '8'];
return await db.delete('myTable',
where: 'id IN (${List.filled(list.length, '?').join(',')})',
whereArgs: list);
Run Code Online (Sandbox Code Playgroud)
更多信息请参见 https://github.com/tekartik/sqflite/blob/master/sqflite/doc/sql.md#parameters