带 Like + '%' 的 Knex 查询不起作用

ver*_*thS 1 node.js knex.js adonis.js

我有这个查询,必须选择通过描述过滤的所有书籍,忽略大写/小写。

所以我在 adonis.js / node.js 中进行此查询:

 const queryBook = Book
            .query()
            .with('user')
 queryBook.where('description', 'like', '%'+bookDescription[0]+'%')
Run Code Online (Sandbox Code Playgroud)

我有这样的记录bookDescription

“学生西班牙语版 1 版”

但是当我尝试仅使用小写的“es”进行过滤时,knex 不会返回任何记录。

当我输入“Es”时,将带有我输入的描述的书归还,因此,类似 %es% 不起作用。

我进行了一次调试,发现了这一点:

knex:query select * from "books" where "description" like ? limit ? undefined +7ms
knex:bindings [ '%es%', 10 ] undefined +6ms
Run Code Online (Sandbox Code Playgroud)

显然我没有发现任何错误,但我认为必须like以小写形式返回记录。

我忘记了什么?

Ami*_*var 8

你可以这样使用

const queryBook = Book
            .query()
            .with('user')
 queryBook.where('description', 'like', `%${bookDescription[0]}%`)
Run Code Online (Sandbox Code Playgroud)

或者


const queryBook = Book
            .query()
            .with('user')
 queryBook.where('description', 'ilike', `%${bookDescription[0]}%`)

Run Code Online (Sandbox Code Playgroud)

更多信息。查看knexjs文档