如何在 Sequelize 中对查询结果进行排序?
How to sort the result of a query in Sequelize?
我正在尝试 return 有序表单查询的结果(升序或降序),我知道这是使用顺序完成的:['columnName',排序顺序 (ASC / DESC)] ,当我只对单个列进行排序时,我做得很好,但假设我有一个 table 和这些列:
product_id,价格,offer_price,报价,描述
并且我想按价格或 offer_price 排序(offer_price 列取决于报价列,也就是说,我对 offer_price 只有报价感兴趣该列的值为 1,表示该产品确实在打折)。
我怎样才能让结果 return 按价格或 price_offer 向我订购,也就是说,如果产品正在打折,我必须考虑下单时的price_offer,如果不打折就按正常价格
例如:
产品 1:product_id = 1,价格 = 9,000,offer_price = 8,500,报价 = 1,描述:'yy'
产品 2:product_id = 2,价格 = 2,000,offer_price = 500,报价 = 0,描述:'bbb'
产品 3:product_id = 3,价格 = 1,500,offer_price = 1,000,报价 = 1,描述:'ccccc'
查询结果升序为:product3、product2、product1。由于product3在打折,是所有商品中价格最低的(1000),下面是product2(这个有price_offer=500但是没有打折,所以取正常价格(2000),最后产品 3 (8,500)).
我如何使用 Sequelize 实现此目的?我找不到可以帮助我处理文档的东西。
您可以这样使用 MySQL IF function:
order: [sequelize.literal('(IF(offer = 1, offer_price, price))'), sort order (ASC / DESC)]
我正在尝试 return 有序表单查询的结果(升序或降序),我知道这是使用顺序完成的:['columnName',排序顺序 (ASC / DESC)] ,当我只对单个列进行排序时,我做得很好,但假设我有一个 table 和这些列:
product_id,价格,offer_price,报价,描述
并且我想按价格或 offer_price 排序(offer_price 列取决于报价列,也就是说,我对 offer_price 只有报价感兴趣该列的值为 1,表示该产品确实在打折)。
我怎样才能让结果 return 按价格或 price_offer 向我订购,也就是说,如果产品正在打折,我必须考虑下单时的price_offer,如果不打折就按正常价格
例如:
产品 1:product_id = 1,价格 = 9,000,offer_price = 8,500,报价 = 1,描述:'yy'
产品 2:product_id = 2,价格 = 2,000,offer_price = 500,报价 = 0,描述:'bbb'
产品 3:product_id = 3,价格 = 1,500,offer_price = 1,000,报价 = 1,描述:'ccccc'
查询结果升序为:product3、product2、product1。由于product3在打折,是所有商品中价格最低的(1000),下面是product2(这个有price_offer=500但是没有打折,所以取正常价格(2000),最后产品 3 (8,500)).
我如何使用 Sequelize 实现此目的?我找不到可以帮助我处理文档的东西。
您可以这样使用 MySQL IF function:
order: [sequelize.literal('(IF(offer = 1, offer_price, price))'), sort order (ASC / DESC)]