Knex JS“或”里面。where()?

时间:2018-12-12 21:24:31

标签: javascript knex.js

任何人对如何编写“ ||”等OR逻辑有任何想法吗? JS中的'运算符 我试图在我的膝盖下这样做->

knex('something')
  .where({ state: BOOKING_STATE.ACCEPTED } || { state: BOOKING_STATE.WAITING_LIST})

但是它失败了,我在文档中找不到关于它的任何东西

3 个答案:

答案 0 :(得分:3)

如果您使用Knex查看where子句的文档,则会看到一个分组的链,如果您尝试使用多个where子句,而只想or这两个子句,列出,那么类似的方法就可以工作。

knex('something')
.where(function() {
  this.where('state', BOOKING_STATE.ACCEPTED ).orWhere('state', BOOKING_STATE.WAITING_LIST)
})
.andWhere('something', something_else)
...;

答案 1 :(得分:2)

您应该可以使用where() and orWhere()的组合:

knex('something')
  .where({ state: BOOKING_STATE.ACCEPTED })
  .orWhere({state: BOOKING_STATE.WAITING_LIST })

答案 2 :(得分:0)

如您在Knex.js Documentation上看到的,它具有whereandWhereorWhere的功能。因此,您可以通过调用

轻松链接您的WHERE查询
knex('something')
    .where({ state: BOOKING_STATE.ACCEPTED })
    .orWhere({ state: BOOKING_STATE.WAITING_LIST })

您还可以使用:

knex.select('some_field').from('some_table')
.where({ state: BOOKING_STATE.ACCEPTED })
.orWhere({ state: BOOKING_STATE.WAITING_LIST })