Knex.js Where Clause contains mandatory AND and Optional OR - SQL
Knex.js Where Clause contains mandatory AND and Optional OR - SQL
我有一个 SQLite 数据库 table 员工
Table 姓名:员工
ID Name Country CountyID Status
1 John IN 1 Active
2 Jack US 1 InActive
3 Emma UK 1 Active
4 Josh US 1 Active
5 Jill US 0 Active
我需要获取居住在“IN
”和“US
”或 CountyID“1
”的“Active
”人。
示例代码:
const dbContext = require("knex")({
client: "sqlite3",
connection: {
filename: filename.db
},
useNullAsDefault: true
});
const persons = dbContext('Employee').where({Status: 'Active'}). ???
SQL 查询是
SELECT * FROM Employee WHERE Status = 'Active' AND (Country IN ('IN', 'US') OR CountyID = 1)
我需要等效的 Knex 查询。请在这方面帮助我。
应该这样做:
dbContext('Employee').where('Status', 'Active').where(builder => {
builder.whereIn('Country', ['IN', 'US']).orWhere('CountyID', 1);
})
我有一个 SQLite 数据库 table 员工
Table 姓名:员工
ID Name Country CountyID Status
1 John IN 1 Active
2 Jack US 1 InActive
3 Emma UK 1 Active
4 Josh US 1 Active
5 Jill US 0 Active
我需要获取居住在“IN
”和“US
”或 CountyID“1
”的“Active
”人。
示例代码:
const dbContext = require("knex")({
client: "sqlite3",
connection: {
filename: filename.db
},
useNullAsDefault: true
});
const persons = dbContext('Employee').where({Status: 'Active'}). ???
SQL 查询是
SELECT * FROM Employee WHERE Status = 'Active' AND (Country IN ('IN', 'US') OR CountyID = 1)
我需要等效的 Knex 查询。请在这方面帮助我。
应该这样做:
dbContext('Employee').where('Status', 'Active').where(builder => {
builder.whereIn('Country', ['IN', 'US']).orWhere('CountyID', 1);
})