Почему мой sql-запрос в sqlite / sqlbrite не работает со вторым условием / несколькими предложениями WHERE?

#sqlite #flutter #sqlbrite

#sqlite #трепетание #sqlbrite

Вопрос:

У меня есть запрос к моей базе данных 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));
  }
 

Комментарии:

1. "deleted" или "delete" ? Опубликуйте образцы данных для уточнения.

2. Удалить. Было бы убедиться, что в каждой записи нет флага «удалить». Я могу немного опубликовать некоторые примеры данных.

Ответ №1:

похоже, что у вас есть "delete" в вашем SQL. Я думаю, вам понадобится 'delete' . Они определенно не совпадают.

Ответ №2:

Вы можете попытаться передать «удалить» в аргументах

 db.createQuery(
        "transactions",
        where: 'action != ? AND transaction_quarter = ? ',
        whereArgs: ["delete", sessionData['selected_quarter']]
    )