【问题标题】:Flutter SQFlite Delete Multiple by List of integer IDsFlutter SQFlite 按整数ID列表删除多个
【发布时间】:2021-12-26 18:03:14
【问题描述】:

Flutter 中的 SQFlite

以下代码按给定 ID 删除一行

Future<int> delete(int id) async {
Database db = await instance.database;
return await db.delete(myTable, where: 'id = ?', whereArgs: [id]);
}

但是如何同时删除多个ID呢?

我有 变量 列表: List&lt;int&gt; toBeDeleted = [5, 4, 8, ...]

我尝试在 whereArgs 中提供一个列表,但它不起作用。我正在寻找的是能够“一次删除选定的多个项目”。

【问题讨论】:

    标签: flutter sqlite sqflite


    【解决方案1】:

    您可以使用 SQLite IN 子句:

    await db.delete(myTable, where: 'id IN (?,?,?)', whereArgs: [id1, id2, id3]);
    

    由于列表大小可以更改,因此具有适当的数字或?可以使用以下解决方案解决: List.filled(inArgsCount, '?').join(',')

    var list = ['5', '4', '8'];
    return await db.delete('myTable',
      where: 'id IN (${List.filled(list.length, '?').join(',')})',
      whereArgs: list);
    

    更多信息在这里 https://github.com/tekartik/sqflite/blob/master/sqflite/doc/sql.md#parameters

    【讨论】:

      猜你喜欢
      • 2019-05-06
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 2022-01-06
      • 2022-07-21
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      相关资源
      最近更新 更多