gpt4 book ai didi

mysql - 切换值后重新计算头寸的重要方法

转载 作者:行者123 更新时间:2023-11-29 07:49:44 25 4
gpt4 key购买 nike

我有一个 MySQL 表,其中的项目按等级分类:

fruit     rank

banana 1
apple 2
cherry 3
raisin 4
pawpaw 5

让我们做一个小切换,将 pawpaw 更改为位置 2。这是我想要的表格:

fruit     rank

banana 1 # Unchanged
pawpaw 2 # -3
apple 3 # +1
cherry 4 # +1
raisin 5 # +1

如果我对香蕉执行此操作,到位置 3。我希望得到这个表:

fruit     rank

pawpaw 1 # -1
apple 2 # -1
banana 3 # +2
cherry 4 # Unchanged
raisin 5 # Unchanged

通过算法来实现这一点并不是很复杂。但是,我以一种非常简单且非优化的方式完成了它:

  1. 把水果 table 上的所有东西都拿到;
  2. 使用 PHP 计算新的排名并使用一系列条件;
  3. 用新的排名更新水果表。

是否有一个优化的 MySQL UPDATE 命令可以做到这一点?

或者,这个排序问题是否有一个数学公式来避免使用大量条件?

最佳答案

我建议将排名存储为 10、20、30 等,而不是 1、2、3。

然后,您可以使用查询将 pawpaw 向上移动:

update items
set rank = 15
where fruit = 'pawpaw';

您可以使用以下方法重新标准化值:

set @rn := 0;

update items
set rank = (@rn := @rn + 10)
order by rank;

关于mysql - 切换值后重新计算头寸的重要方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801706/

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