-1

我有一个查询我的 Sqlite/Brite 数据库,它需要两个条件。一个用于检查选定的季度,另一个用于确保操作属性不是“删除”。当我只有 WHERE 子句来检查所选季度时,我得到了我想要的所有数据。当我添加 WHERE 子句以检查以确保它没有“已删除”属性时,什么都没有返回。没有任何东西应该有一个已删除的属性,因此所有相同的数据都应该返回,但事实并非如此。为什么是这样?

这是导致我问题的功能

 Stream<List<dynamic>> getTransaction() async* {
    List _transaction = [];
    final sessionData = await getSession();
    final db = await initDatabase();
    yield* db.createQuery(
        "transactions",
        where: 'action != "delete" AND transaction_quarter = ? ',
        whereArgs: [sessionData['selected_quarter']]
    ).mapToList((row) => TransModel.Transaction.fromMap(row));
  }
4

2 回答 2

0

您可以尝试在 args 中传递“删除”

db.createQuery(
        "transactions",
        where: 'action != ? AND transaction_quarter = ? ',
        whereArgs: ["delete", sessionData['selected_quarter']]
    )
于 2020-12-04T01:29:27.433 回答
0

看起来你"delete"的 SQL 中有。我想你会需要'delete'. 它们绝对不一样。

于 2020-12-04T01:10:10.420 回答