首页 > 解决方案 > 克尼克斯,从

问题描述

我有 adonis 后端(在引擎盖下运行 knex)根据用户过滤将一些数据发送到前端。

我需要用类似startWithjs的方法来实现一个过滤参数,以检查用户提交的文本是否是后端数据名称的开头,而不是出现在它的中间

目前我使用

this.where('companies.name', 'like', params.name)

什么也检查中间外观。

理想情况下,我想做类似的事情

this.where('companies.name', 'startWith', params.name)

但是这种语法是无效的。

有没有类似于这个用例的东西?在 Knex 文档中找不到似乎可以解决我的问题的东西

只是为了澄清,我在这个查询中加入了几个表并进行了一些where过滤,所以遵循这种语法的解决方案将是最好的,但对更多解决方案开放

提前致谢!

标签: javascriptknex.jsadonis.js

解决方案


这取决于您使用的是哪种数据库,但 SQL 数据库必须支持通配符。

你可以在这里阅读更多信息。

this.where('companies.name', 'like', `${params.name}%`)
// -------------------------------------------------^

这个%字符的意思是“替代零个或多个字符”。


推荐阅读