如何在Knex JS中使用IS NOT NULL

时间:2016-09-13 08:34:56

标签: javascript mysql node.js knex.js

我正在尝试使用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

我已经阅读了他们的文档,找不到任何有用的东西。

3 个答案:

答案 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中的*不为空