Knex,开始于

问题描述

我有一个adonis后端(在后台运行knex),它根据用户过滤向前端发送一些数据。

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

我目前正在使用

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

什么也检查中间外观。

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

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

但是此语法无效。

是否有与此用例相似的东西?在Knex文档中找不到似乎可以解决我问题的方法

为澄清起见,我在此查询中加入了几张表并进行了where过滤,因此遵循此语法的解决方案将是最佳选择,但可提供更多解决方

谢谢!

解决方法

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

您可以阅读更多信息here

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

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