我正在尝试使用knex创建以下查询:
SELECT * FROM users group by users.location having users.photo is not null
如下:
knex("users").groupBy("users.location").having("users.photo", "IS NOT", "Null")
我收到以下错误:
The operator IS NOT is not permitted
我已经阅读了他们的文档,找不到任何有用的东西。
答案 0 :(得分:12)
你试过了吗?
knex("users").whereNotNull("photo").groupBy("location")
答案 1 :(得分:0)
根据docs,您需要 .havingRaw :
knex("users").groupBy("users.location").havingRaw("users.photo IS NOT ?", [null]);
另一方面,除非在此特定情况下使用构建器有任何剩余优势,否则请立即执行knex.raw。
答案 2 :(得分:0)
文档有答案。有whereNull,whereNotNull,havingNull,havingNotNull等。来自DOCS:
havingNull — .havingNull(列) 在查询中添加一个havingNull子句。
knex.select('*')。from('users')。havingNull('email')
输出:
从具有users
的{{1}}中选择*
havingNotNull — .havingNotNull(列) 向查询中添加一个havingNotNull子句。
knex.select('*')。from('users')。havingNotNull('email')
输出:
从email
中选择users
中的*不为空