在Sequelize中,如果您希望在查询中检查两列是否相等,可以使用框架提供的Sequelize.where
函数和Sequelize.col
方法。这种方式允许您在where
查询条件中引用表的列,并进行比较。
以下是一个具体的例子,假设我们有一个名为Order
的模型,它有两个字段:price
和discounted_price
。现在我们想要找出所有price
和discounted_price
相等的订单。
javascriptconst { Op, where, col } = require('sequelize'); const { Order } = require('./models'); async function findOrdersWithEqualPrices() { try { const orders = await Order.findAll({ where: where(col('price'), Op.eq, col('discounted_price')) }); return orders; } catch (error) { console.error('Error fetching orders:', error); } } findOrdersWithEqualPrices().then(orders => { console.log('Orders with equal prices:', orders); });
在这个例子中:
- 我们从
sequelize
引入了Op
,where
, 和col
。 - 使用
Order.findAll()
方法来获取所有记录。 - 在
where
选项中,我们使用where(col('price'), Op.eq, col('discounted_price'))
来声明我们想要price
列的值等于discounted_price
列的值。
这种方法相对直观,并且可以很方便地用于比较同一个模型中的两个字段。
2024年8月9日 00:01 回复