You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Knex实现含多WHERE子句的数据查询

用Knex实现目标SQL查询

以下是对应目标SQL的Knex实现代码,同时修正了原SQL中判断NULL的语法问题(SQL里判断NULL需用IS NULL而非=):

knex('table_name')
  .select('*')
  .where('email', '')
  .where(function() {
    this.whereNull('received').orWhere('received', '')
  })
  .where('orderNumber', '')

代码对应SQL逻辑说明:

  • knex('table_name') 对应 FROM table_name
  • .select('*') 对应 SELECT *
  • .where('email', '') 匹配 email = ''
  • 回调函数包裹的部分对应原SQL中括号里的OR条件,whereNull('received') 生成 received IS NULL,orWhere('received', '') 生成 received = '',两者组合会自动带上括号,保证逻辑优先级
  • .where('orderNumber', '') 匹配 orderNumber = ''

如果偏好直接写SQL片段,也可以用whereRaw实现:

knex('table_name')
  .select('*')
  .where('email', '')
  .whereRaw('(received IS NULL OR received = ?)', [''])
  .where('orderNumber', '')

内容的提问来源于stack exchange,提问作者angry kiwi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:25:33