如何把物品放在特定的位置?
我想把项目放在第5个位置:
`id`='randomId243'
到目前为止,我的排序如下所示:
ORDER BY
CASE
WHEN `id` = 'randomId123' THEN 0
WHEN `id` = 'randomId098' THEN 1
ELSE 2
END, `name` ASC
我还不知道哪个id将位于位置2、3、4。我希望避免运行另一个查询/子查询来获取位置2-4的项的id
所以最后的顺序应该是这样的:
- 随机ID 123
- 随机ID 098
- 仅按字母顺序排列项目
- 仅按字母顺序排列项目
- 仅按字母顺序排列项目
- 随机ID 243
- 仅按字母顺序排列项目
1条答案
按热度按时间yhxst69z1#
对当前排序使用
ROW_NUMBER()
窗口函数对行进行初始排序。然后创建3组行:顶部的行、
'item5'
的行和'item5'
以下的行将与UNION ALL
组合并按组和行号排序:请注意,代替:
您可以用途:
参见简化的demo。