gpt4 book ai didi

node.js - 如何根据值的一部分从表中获取数据?

转载 作者:行者123 更新时间:2023-12-03 22:26:49 27 4
gpt4 key购买 nike

我使用 sequelize 作为 Node 和 mysql 数据库的 ORM。现在我想根据部分值从表中获取所有项目。示例:我寻找 Guitar 它应该返回:Guitars、Guitar Red 6 弦等...

const getGuitarsName = async name => {
let rslts= undefined

try {
results = await db.Guitars.findAll({
where: {
name
}
})
} catch(err) {
return {success: false}
}

return {success: true, rslts}
}

同样在路由器上我有类似的东西:
router.get('/guitar/:gitName', async (req, res) => {
const gitName = req.params.gitName
const data = await guitarService.getSingleName(gitName)

if(!data.success) return responses.throwError(res)

return responses.throwSuccess(res, data.results)
})

所以如果我使用像 localhost/guitar/Guitar Red 6 Strings 这样的路由我得到了结果,但是如果我尝试使用 localhost/guitar/Guitar 我得到了 {"message":"Success","data":[]}

最佳答案

您可以使用 LIKE 关键字来匹配与您传递的字符串类似的字符串,其中包含以下键字符:

  • _ 表示存在
  • 的任何字符
  • % 表示
  • 中的任意 1 个或多个字符

    因此,您正在寻找这样的东西
    results = await db.Guitars.findAll({
    where: {
    name: {
    [Op.like]: 'Guitar%'
    }
    }
    })

    此外,如果您使用的是 PostgreSQL,则可以使用与 ILIKE 相同的 [Op.ilike] ( LIKE ) 运算符,只是不区分大小写。参见: http://docs.sequelizejs.com/manual/querying.html

    关于node.js - 如何根据值的一部分从表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56186818/

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