У меня небольшие проблемы с копированием вашей проблемы. То, что у вас есть, должно работать, но, возможно, вы не учитываете поведение SQL в отношении NULL: что-либо по сравнению с NULL равно NULL, поэтому синтаксис IS NOT NULL
существует , Например:
foo=# SELECT 1 >= NULL;
?column?
----------
NULL
(1 row)
foo=# SELECT NULL >= 1;
?column?
----------
NULL
(1 row)
Это означает, что вы можете обойтись без проверки нуля вообще, потому что будут возвращены только строки, соответствующие условию:
const unidadeSequenceAtualEstudante = await Database.select("*")
.from("student_quiz_historics")
.where({
book_id: idLivro,
class_id: idClasse,
student_id: idEstudante
})
.where('percentage_correct', '>=', parQtdAcerto)
.where("execution_back_status", "<>", "Cancelado")
.orderBy("sequence", "desc")
.first();
Это хорошая идея? Спорно. Я думаю, что это, вероятно, хорошо для этой цели, но мы не должны предполагать, что NULL
- это то же самое, что и FALSE
, потому что это не так.
Если у вас все еще есть проблемы с вашим запросом вам нужно будет предоставить более подробную информацию о том, какую базу данных вы используете, какова ваша схема и какие ошибки вы получаете.