gpt4 book ai didi

sql - 在 Sequelize 中同时查询两个组合字段

转载 作者:太空宇宙 更新时间:2023-11-03 22:40:40 28 4
gpt4 key购买 nike

我的应用程序中有一个用于搜索人员姓名的搜索框。候选人的姓名存储为firstName,然后是lastName。当我搜索应用程序时,应用程序输入提交对 ajax 函数的调用,其中有这段代码。

  filters.where = {
$or: ['firstName', 'lastName', 'email'].map((item) =>
({[item]: {[queryClause]: `%${query}%`}}))
};

const scope = req.query.list;
const candidates = await CandidateModel.scope(scope).findAll(filters);

因此,如果我在搜索框中输入“John”,它将找到候选人,如果我输入单词“Smith”,它将找到候选人。

问题是,如果我输入全名“John Smith”,它不会出现,因为查询正在检查“John Smith”是否等于“John”,即名字,或者“John Smith”等于姓氏“Smith”。它不等于其中任何一个。

有没有办法通过 sequalize 中的组合字段进行过滤,以便测试查询是否与组合的名字和姓氏字段相匹配?

最佳答案

使用类似下面的内容以“firstName lastName”的形式按全名进行搜索

Sequelize.where(Sequelize.fn("concat", Sequelize.col("firstName"), ' ', Sequelize.col("lastName")), {
$ilike: '%john smith%'
})

这样做可以解决名字或姓氏可能有空格的问题。

关于sql - 在 Sequelize 中同时查询两个组合字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36455513/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com