gpt4 book ai didi

mysql - 如何在 Sequelize 中对查询结果进行排序?

转载 作者:行者123 更新时间:2023-12-03 22:32:04 26 4
gpt4 key购买 nike

我正在尝试返回有序表单查询的结果(升序或降序),我知道它是使用 order: ['columnName', sort order (ASC/DESC)] 完成的,当我只排序时,我做得很好以单列为基础,但假设我有一个包含这些列的表:
product_id、价格、offer_price、报价、描述
并且我想按价格或 offer_price 排序(offer_price 列取决于 offer 列,也就是说,只有当 offer 列的值为 1 表示该产品确实在打折时,我才对 offer_price 感兴趣)。
我怎么做才能让结果返回给我ordered,按价格或price_offer,也就是说,如果产品在打折,我必须在下订单时考虑price_offer,如果没有卖那么我应该走正常价格。
例如:
Product1: product_id = 1, price = 9,000, offer_price = 8,500, offer = 1, description: 'yy'
Product2: product_id = 2, price = 2,000, offer_price = 500, offer = 0, description: 'bbb'
Product3: product_id = 3, price = 1,500, offer_price = 1,000, offer = 1, description: 'ccccc'
升序查询结果应该是:product3、product2、product1。由于产品 3 正在促销并且是所有产品中的最低价格 (1,000),因此产品 2 如下(这里有一个 price_offer = 500 但不促销,因此采用正常价格(2,000),最后是产品 3(8,500 ))。
我如何使用 Sequelize 实现这一目标?我找不到可以帮助我处理文档的内容。

最佳答案

您可以像这样使用 MySQL IF function:

 order: [sequelize.literal('(IF(offer = 1, offer_price, price))'), sort order (ASC / DESC)]

关于mysql - 如何在 Sequelize 中对查询结果进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66033056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com