【发布时间】:2022-11-02 01:53:58
【问题描述】:
我们可以在 Adonis JS 中使用 where like 查询字符串值,如下所示
await ModelName.query()
.where('descriptions', 'LIKE', "%somevalue%")
如果 descriptions 是字符串值,但不是数字值,则可以。
await ModelName.query()
.where('quantity', 'LIKE', "%somevalue%")
这给了我operator does not exist: numeric ~~ unknown 的错误
所以需要先将值的类型从数字转换为字符串。 对此有什么建议吗?
【问题讨论】:
-
您正在使用 like 运算符搜索数值,这很奇怪。你确定你需要那种功能吗? .where('quantity', somevalue) 将搜索确切的数字,例如,如果您想要大于 9000 的数字,您可以编写 .query('qty', '>', 3)。但是用类似查询搜索数字?为什么需要这样的功能?
-
因为我想在后端实现搜索功能。之前我们使用前端mui数据表的搜索功能,但是现在因为db表中的行非常大,像100k,所以我们需要将搜索功能移到后端。请检查前端 muitable 的屏幕截图,显示 qty 的搜索结果。
-
如果您真的需要这个(而且我认为通过相似性搜索数字根本没有用),您将需要在该表中再创建一列,称为quantity_string 或其他内容并将其设为varchar。比使用该列进行搜索。
标签: sql node.js postgresql backend adonis.js