📅  最后修改于: 2023-12-03 14:48:27.071000             🧑  作者: Mango
在SQL查询中,有时需要筛选出空(null)值。在Knex中,可以使用whereNull
方法来查询null值。
使用whereNull
方法可以查询指定字段中的null值。例如,下面的查询语句将返回users
表中名字为null的所有行:
knex.select('*').from('users').whereNull('name');
可以使用whereNotNull
方法来查询非null值:
knex.select('*').from('users').whereNotNull('name');
可以使用whereExists
方法来检查一个子查询是否返回了至少一行记录:
knex('users').whereExists(function() {
this.select('*').from('accounts').whereRaw('accounts.user_id = users.id');
});
如果子查询返回了至少一行记录,则主查询中的每一行都会包括在结果中。
可以使用whereNotExists
方法来检查一个子查询是否没有返回任何记录:
knex('users').whereNotExists(function() {
this.select('*').from('accounts').whereRaw('accounts.user_id = users.id');
});
如果子查询没有返回任何记录,则主查询中的每一行都会包括在结果中。
下面是一个完整的Knex查询,它从users
表中查询名字为null的所有行:
knex.select('*')
.from('users')
.whereNull('name')
.then(rows => {
console.log(rows);
})
.catch(error => {
console.error(error);
});
使用Knex可以轻松地查询null值。使用whereNull
方法可以查询指定字段中的null值,使用whereNotNull
方法可以查询非null值。可以使用whereExists
方法来检查一个子查询是否返回了至少一行记录,使用whereNotExists
方法来检查一个子查询是否没有返回任何记录。