如何在sequelize中连接两个字段并检查新字段是否包含子字符串



我正在使用sequelize联系我的数据库。我想将两个字段first_name和last_name连接到full_name,并检查full_name是否包含子字符串。我试过这样的方法,但似乎不起作用,你能告诉我怎么做吗?

let getUserByText = (text) => {
return new Promise(async (resolve, reject) => {
try {
let user = await db.User.findAll({
where: db.User.where(
db.User.fn("CONCAT",
db.User.col("first_name"),
" ",
db.User.col("last_name")
),
{
[op.iLike]: `%${text}%`,
},
)
})
resolve(user);
} catch (e) {
reject(e);
}
})
}

试试这个,你可以从sequelize本身导入WhereOptions

let whereOptions: WhereOptions;
if (text) {
whereOptions = {
[Op.or]: [
Sequelize.where(Sequelize.fn('concat', Sequelize.col('first_name'), ' ', Sequelize.col('last_name')), {
[Op.iLike]: `%${text}%`,
}),
],
};
} else {
whereOptions = {};
}

最新更新