”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用单个 SQL 查询对表中的记录重新排序?

如何使用单个 SQL 查询对表中的记录重新排序?

发布于2024-11-22
浏览:376

How to Reorder Records in a Table with a Single SQL Query?

使用单个 SQL 查询对记录重新排序

在带有“位置”字段以对其外观进行排序的食品表中,单个SQL 查询可以基于对单个记录的更改来更新多个记录。这对于重新排序特定列表中的项目特别有用。

假设我们有一个像这样的表这个:

id列表ID名称位置
1 1奶酪0
21薯条1
31培根2
41苹果3
514
61馅饼 5

至将梨移到薯片之前,我们可以将它们之间的所有项目的位置增加 1。

但是,大多数解决方案都涉及多个查询,这可能效率低下。相反,可以使用单个查询对记录重新排序:

UPDATE my_table
SET position = position   CASE
    WHEN name = 'pears' THEN -3
    ELSE 0
    END
WHERE listID = 1 AND position BETWEEN 1 AND 4;

此公式确保梨移动到位置 1,并且梨和薯片之间的所有项目都会相应递增。

要重新排序任何项目,只需简单地将 'pears' 替换为要移动的项目的名称,并根据需要调整差异。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3