Knex.JS - 如何将小写输入与小写字段值进行比较?
Knex.JS - How does one compare a lowercased input against lowercased field values?
所以,我正在为我的数据库使用 Knex.JS。我想将小写输入与小写字段值进行比较。我以为我可以 knex.raw
它,但显然我的脚本在我尝试时中断了。有没有人成功地与 Knex.JS 中的小写值进行了 LIKE
比较?如果你做到了,你是怎么做到的?
任何帮助一如既往,非常感谢。
function findUsers(q) {
return db("users")
.where(
knex.raw(`'LOWER("firstname")', "like", %${q.toLowerCase()}%`, "knex")
)
.orWhere("lastname", "like", `%${q}%`)
.orWhere("username", "like", `%${q}%`)
.orWhere("email", "like", `%${q}%`);
}
您可以将值包装在 lower()
中,例如:
function findUsers(q) {
return db('users')
.where(knex.raw('lower("firstname")'), 'like', `%${q.toLowerCase()}%`)
.orWhere(knex.raw('lower("lastname")'), 'like', `%${q}%`)
.orWhere(knex.raw('lower("username")'), 'like', `%${q}%`)
.orWhere(knex.raw('lower("email")'), 'like', `%${q}%`);
}
所以,我正在为我的数据库使用 Knex.JS。我想将小写输入与小写字段值进行比较。我以为我可以 knex.raw
它,但显然我的脚本在我尝试时中断了。有没有人成功地与 Knex.JS 中的小写值进行了 LIKE
比较?如果你做到了,你是怎么做到的?
任何帮助一如既往,非常感谢。
function findUsers(q) {
return db("users")
.where(
knex.raw(`'LOWER("firstname")', "like", %${q.toLowerCase()}%`, "knex")
)
.orWhere("lastname", "like", `%${q}%`)
.orWhere("username", "like", `%${q}%`)
.orWhere("email", "like", `%${q}%`);
}
您可以将值包装在 lower()
中,例如:
function findUsers(q) {
return db('users')
.where(knex.raw('lower("firstname")'), 'like', `%${q.toLowerCase()}%`)
.orWhere(knex.raw('lower("lastname")'), 'like', `%${q}%`)
.orWhere(knex.raw('lower("username")'), 'like', `%${q}%`)
.orWhere(knex.raw('lower("email")'), 'like', `%${q}%`);
}