📅  最后修改于: 2023-12-03 15:32:28.933000             🧑  作者: Mango
在开发 Web 应用程序时,我们经常需要在数据库中使用多个条件来获取数据,这些条件可以是任何东西,例如缩小范围,按日期过滤,等等。在 Knex 中连接多个条件是非常简单的,下面是如何使用 Knex 连接多个条件的例子。
在开始之前,请确保以下项已完成:
下面是一个简单的例子,它显示如何使用 Knex 连接两个条件:
const knex = require('knex')({
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'your_database_user',
password: 'your_database_password',
database: 'myapp_test'
}
});
knex.select('*')
.from('users')
.where({
name: 'John',
age: 30
})
.then(rows => {
console.log(rows);
}).catch(err => {
console.error(err);
})
在这个例子中,我们使用 select
方法选择所有列,使用 from
方法指定要从哪个表中查询数据。然后,我们使用 where
方法连接两个条件,这些条件是在对象中指定的。
下面是一个稍微复杂的例子,它显示如何使用 Knex 连接多个条件:
const knex = require('knex')({
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'your_database_user',
password: 'your_database_password',
database: 'myapp_test'
}
});
knex.select('*')
.from('users')
.where(builder => {
builder.where('name', 'like', '%John%')
.andWhere('age', '>', 30)
.orWhere('email', 'like', '%@gmail.com%')
})
.then(rows => {
console.log(rows);
}).catch(err => {
console.error(err);
})
在这个例子中,我们使用 where
方法传递一个回调函数,这个回调函数接受一个 builder 对象作为参数。我们使用 builder 对象连接多个条件,这些条件使用 andWhere
和 orWhere
方法分别添加。
如您所见,使用 Knex 连接多个条件非常容易。只需使用 where
方法和回调函数,就可以轻松地将多个条件链接在一起。如果您需要更复杂的查询,可以使用类似于上面的例子中使用的 builder 对象来构建查询。