如何在Sequelize中为两列相乘的结果设置where查询条件
Sequelize 5 实现自定义字段运算查询的方法
你可以用Sequelize内置的sequelize.literal()方法拼接字段运算的SQL片段,搭配普通等值查询即可实现需求,示例代码如下:
首先确认你已经导入了所需的依赖和初始化好Sequelize实例:
// 导入操作符 const { Op } = require('sequelize'); // 导入你提前定义好的myTable对应模型 const MyTable = require('./models/my-table');
具体查询逻辑:
const queryResult = await MyTable.findAll({ where: { [Op.and]: [ // 直接写字段运算的SQL片段,literal方法会原样拼接进查询语句 sequelize.literal('col1 * col2 = 50'), // 普通等值条件正常写即可,Sequelize会自动做参数转义 { col3: 'something' } ] } });
注意:
sequelize.literal()传入的内容不会做转义处理,如果里面有用户输入的动态参数,一定要自行做校验处理,避免SQL注入风险。
内容的提问来源于stack exchange,提问作者Moj.H
相关产品推荐
相关产品推荐

