1
我正在使用Sequelize.JS連接到MySQL數據庫。我有以下表結構:如何在sequelize.js中嵌套SQL函數?
products
---------------------
id INT
name VARCHAR
price DECIMAL
price_special DECIMAL
我想獲得最低price
(或special_price
,可用時)和最高price
(或special_price
時可用)。與原始的SQL,我可以做到以下幾點:
SELECT
MIN(IF(`price_special` > 0, `price_special`, `price`)) AS `min`,
MAX(IF(`price_special` > 0, `price_special`, `price`)) as `max`
FROM
`products`
;
我也知道我可以選擇在Sequelize SQL函數包裹欄,這樣一來:
product.findOne({
attributes: [
[ Sequelize.fn('MIN', Sequelize.col('price')), 'min' ],
[ Sequelize.fn('MAX', Sequelize.col('price')), 'max' ],
]
});
不過,我不知道如何嵌套MIN
和IF
函數,我用原始SQL做的方式。