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

如何在Sequelize中实现类似MySQL的MOD取余筛选功能?

在Sequelize中实现MySQL的MOD偶数查询功能

你在MySQL中用以下语句筛选attr字段为偶数的数据行:

SELECT * FROM some_table WHERE MOD(attr, 2) = 0;

想要在Sequelize中实现相同逻辑,其实可以通过两种方式完成:

方式一:使用Op.mod操作符

这完全符合你期望的写法,但要记得先导入Sequelize的Op对象:

const { Op } = require('sequelize');
// 若是ES模块则用:import { Op } from 'sequelize';

然后直接按你设想的写法调用:

MyModel.findAll({
  where: {
    attr: {
      [Op.mod]: [2, 0]
    }
  }
})

方式二:直接调用数据库MOD函数

如果需要更直观对应原生SQL逻辑,也可以用sequelize.fn和sequelize.where组合实现:

MyModel.findAll({
  where: sequelize.where(sequelize.fn('MOD', sequelize.col('attr'), 2), 0)
})

两种方式最终都会生成你需要的原生SQL语句,第一种写法更简洁,第二种则更贴近原生函数调用逻辑,可根据需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:22:12