gpt4 book ai didi

node.js - Sequelize | Node.js,在两个数字之间搜索

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

我正在使用 Sequelize 和 Node.js 进行具有多个选项的高级搜索。
选项之一是在两个价格之间。

  const search2 = req.body.search2;
const title = req.body.title;
const price = req.body.price;
const prices = req.body.prices;
const prices2 = req.body.prices2;
const address = req.body.address;

Product.findAll({
where: { [Op.and]:
{ price: { [Op.like]: '%' + price + '%' },
category: { [Op.like]: '%' + title + '%' },
description: { [Op.like]: '%' + search2 + '%' },
Renting: { [Op.between]: [prices, prices2] },
address: { [Op.like]: '%' + address + '%' } } }
, order: [['createdAt', 'DESC']], limit, offset
})
const pricesconst prices2 是两个输入,用户可以写入最小和最大价格。

在我的 Sequelize 模型中,我有“租赁”列(对于租赁价格,它的整数)。
似乎一切正常,但问题是我得到了价格和价格之间的“50”和“200”。 (例如,如果我在 50 到 200 之间搜索)。
enter image for example
这给了我不同数字的空结果或错误结果。
我注意到如果我把数字放在价格和价格 2 旁边,例如我会写:
租房:{ [Op.between]: [50, 200] },
我会得到正确的结果。 50 和 200(不带 '')
enter image for example
这很好。但这只是我自己定义的数字。

任何人都可以帮助我找到如何使用这两个输入(价格和价格2)获得正确结果的解决方案?

最佳答案

我认为您应该在查询中使用 pricesprices2 之前将其转换为 INTEGER,并且您可以更新您的代码

Renting: { [Op.between]: (+prices, +prices2) },

因为当您输入 '50' 时, '250' 无法匹配并返回错误答案。

关于node.js - Sequelize | Node.js,在两个数字之间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59808178/

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