【问题标题】:AND OR query with ObjectionJS, knex使用 ObjectionJS、knex 进行 AND OR 查询
【发布时间】:2021-12-23 15:42:00
【问题描述】:

SELECT * FROM EMPLOYEE WHERE AGE>40 AND (LOCATION='Chennai' OR NOT LOCATION='Agra');

如何在ObjectionJS/Knex ORM中写出类似上面查询语句的东西?

【问题讨论】:

  • LOCATION='Chennai' OR NOT LOCATION='Agra' 为什么在这两者之间有 OR?
  • LOCATION='Chennai' OR NOT LOCATION='Agra' - 如果第二个条件部分NOT LOCATION='Agra' 为假/空,那么第一部分LOCATION='Chennai' 也是假/空。因此第一部分是多余的,必须删除。

标签: mysql orm knex.js objection.js


【解决方案1】:

这是您要找的吗?

SELECT * FROM EMPLOYEE WHERE AGE>40 AND (LOCATION='Chennai' OR LOCATION <> 'Agra');

【讨论】:

    【解决方案2】:

    假设您有模型Employee,那么您可以使用 Objection.js 查询

    Employee.query()
            .select('*')
            .where('age', '>', 40)
            .where(builder => builder.where('location', 'Chennai')
                                     .orWhereNot('location', 'Agra')
            )
    

    您可以在此处阅读更多关于 Objection.js 子查询语法的信息 https://vincit.github.io/objection.js/recipes/subqueries.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      相关资源
      最近更新 更多