gpt4 book ai didi

mysql - mysql 表中的订单项目,其中订单以特定 [mutable] 列的值为条件

转载 作者:行者123 更新时间:2023-11-30 23:28:36 26 4
gpt4 key购买 nike

假设示例:您有一个名为 HOUSES 的表,您希望按最后更新的顺序显示每一行。
-最近的在前,最近的在后。
-您还想先订购未售出的商品,最后订购所有已售出的商品。

-管理员还必须能够将未售出更改为已售出,并让该更改将一个项目与另一个已售出的项目一起放到底部。如果需要,能够手动更改特定房屋的显示顺序。

我应该怎么做?这些是我必须使用的列:

  -ID (which can be used to order them by date added i suppose),   -PRICE (vals are: the price if unsold or "SOLD" if sold)  -DISP_ORDER (an integer field with the true display order)

最佳答案

尝试以下操作:

SELECT * FROM (
SELECT
ID, PRICE, DISP_ORDER,
CASE WHEN PRICE = 'SOLD' THEN 1 ELSE 0 END AS soldOrder,
CASE WHEN DISP_ORDER > 0 THEN DISP_ORDER ELSE -ID END AS customOrder
FROM HOUSES
) AS q
ORDER BY
soldOrder, customOrder

内部查询构建了两个自定义排序列。 soldOrder 将使所有已售商品的值为 1,所有未售商品的值为 0。customOrder 列将使用 DISP_ORDER 值(如果已设置) ,否则它将使用 -ID(以获取“按降序创建的日期”实现)。
外部查询将选择所有字段并首先按 sortOrder 排序(将所有未售出的商品放在顶部,已售出的商品放在底部),然后按它们的 customOrder 对两半中的每一个进行排序 值(DISP_ORDER 值首先是最近更改优先顺序中的所有项)。

关于mysql - mysql 表中的订单项目,其中订单以特定 [mutable] 列的值为条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11851831/

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