gpt4 book ai didi

MySQL 按固定位置排序

转载 作者:行者123 更新时间:2023-11-30 22:43:15 25 4
gpt4 key购买 nike

我有一个表,其中有一列名为 fixed_position。对于某些项目,这是用 int 填充的,其他行具有空值。

我正在运行以下查询:

SELECT id, fixed_position, intvalue (calculated in a subquery)
FROM content_items
ORDER BY intvalue DESC

因此结果按 intvalue DESC 排序。但我希望 fixed_position=12 的行始终位于结果集中的第 12 个位置。

这可能吗?我该怎么做?

示例数据:

+------+-------------------+-------------+
| ID | fixed_position | intvalue |
+------+-------------------|-------------+
| x | null | 17 |
| x | null | 14 |
| x | null | 11 |
| x | null | 9 |
| x | 3 | 6 |
| x | 2 | 3 |
| x | null | 1 |

期望的输出:

+------+-------------------+-------------+
| ID | fixed_position | intvalue |
+------+-------------------|-------------+
| x | null | 17 |
| x | 2 | 3 |
| x | 3 | 6 |
| x | null | 14 |
| x | null | 11 |
| x | null | 9 |
| x | null | 1 |

最佳答案

ORDER BY 子句中使用 CASE 语句为 fixed_position 空值分配更高的排序值,以便它们 float 到列表底部。例如:

ORDER BY (CASE WHEN intvalue IS NULL then 999 ELSE 0 END)

关于MySQL 按固定位置排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490123/

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