簡體   English   中英

如何對 Sequelize 中的查詢結果進行排序?

[英]How to sort the result of a query in Sequelize?

我正在嘗試返回有序表單查詢(升序或降序)的結果,我知道它是使用 order: ['columnName', sort order (ASC / DESC)] 完成的,當我只排序時我做得很好基於單列,但假設我有一個包含這些列的表:

product_id、價格、offer_price、offer、描述

並且我想按價格或按offer_price 排序(offer_price 列取決於offer 列,也就是說,只有當offer 列的值為1 表示該產品確實在銷售時,我才對offer_price 感興趣)。

我怎樣才能將結果返回給我訂購,按價格或按價格報價,也就是說,如果產品在銷售,我必須在訂購時考慮價格報價,如果它不在出售那么我應該采取正常價格。

例如:

Product1:product_id = 1,price = 9,000,offer_price = 8,500,offer = 1,描述:'yy'

Product2:product_id = 2,price = 2,000,offer_price = 500,offer = 0,描述:'bbb'

Product3:product_id = 3,price = 1,500,offer_price = 1,000,offer = 1,描述:'ccccc'

查詢結果按升序排列應為:product3、product2、product1。 由於 product3 正在打折並且是所有產品中的最低價格 (1,000),因此產品 2 如下(這個有 price_offer = 500 但不打折,因此采用正常價格 (2,000),最后是 product3 (8,500 ))。

我如何使用 Sequelize 實現這一目標? 我找不到可以幫助我處理文檔的東西。

您可以像這樣使用 MySQL IF function

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM