javascript - 将 PostgresSQL 查询转换为 Knex.js
问题描述
我必须在使用 knex时使用该LOWER
功能。whereIn
我想更改下面的代码行
whereIn("name", members);
如果我这样做whereIn('LOWER("name")', members);
了,当我尝试使用 knex.raw 时出现错误,
Column LOWER("name") is not present.
但又没有得到正确的语法。
const roleMembers = await t("roles")
.select({ role_id: "id" }, "name")
.whereIn(t.raw("LOWER('name')"), members);
当我尝试添加等待时,语法错误消失但是当我执行此代码时,我收到以下错误
错误:LOWER(name) - syntax error at or near "LOWER"
我指的是http://knexjs.org/#Builder-whereIn
我们有whereRaw
,我们有类似的东西whereIn
吗?需要一些帮助来解决这个问题。
注意:我使用了所有的LOWER,lower,Lower。
解决方案
knex.raw()
可用于列组件
knex('members').whereIn(knex.raw('Lower("name")'), members)
select * from `members` where Lower("name") in ('Tom', 'Dick', 'harry')
推荐阅读
- email - 如何使用 postfix 在 Ubuntu 16.04 上设置邮件服务器
- css - CSS,Stylus:有条件的“else”被忽略
- python - 如何根据 anotehr 单选按钮值禁用 django 表单单选按钮
- vtk - 如何使用 pyqt6 添加 vtk/pyvista 窗口?
- python - django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。当我尝试在heroku上的consumers.py中导入模型时
- angular - 在相应的 Angular 规范文件中调用方法会引发“不是函数”错误
- apache - 如何使用 htaccess 更改子域的文档根目录
- javascript - 未处理的承诺拒绝:DiscordAPIError:无法向该用户发送消息
- python - 如何将此数字四舍五入到最接近的 10,000 位?
- node.js - 使用 express node.js 更新数据时出现错误