我试图在Sequelize语法中写下这个where子句:
SELECT * FROM `artist` WHERE `deleted_at` = null OR `deleted_at` > now();
我已经通过多种方式续集了where子句,包括用[sequelize.Op.or]
替换or
:
where: {
deleted_at: {
[sequelize.Op.or]: [null, { [sequelize.Op.gt]: (new Date()) }]
}
但是我必须在语法上离开,因为我的输出显示它正在运行此查询:
SELECT `id`, `name`, `created_at`, `created_by`, `deleted_at`, `deleted_by` FROM `artist` AS `artist` WHERE `artist`.`deleted_at` = '2017-12-22 00:00:00' LIMIT 1;
时间错误(应该显示下午晚些时候,而不是00:00:00),它不应该显示等号,并且它甚至不提空。我无法从文档中说出语法是什么。在这里敲我的头撞墙。
答案 0 :(得分:0)
where: {
[Op.or]: [{deleted_at: null}, {deleted_at: { [sequelize.Op.gt]: (new Date()) }}]
}
我把它放在答案部分进行格式化:)
答案 1 :(得分:0)
除了xelliof的答案之外,运营商也可以写成如下方括号,个人偏好:
where: {
$or:
[
{ deleted_at: null },
{ deleted_at: { $gt: (new Date()) } }
]
}