作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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
通过算法来实现这一点并不是很复杂。但是,我以一种非常简单且非优化的方式完成了它:
是否有一个优化的 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/
我有关于一个实体的信息: 纬度/经度位置标题(弧度)速度(以节为单位) 假设实体在恒定高度以恒定速度沿直线移动,我如何计算实体在任意时间点的纬度/经度位置(或每隔一段时间计算出它的位置)? (如你所见
我是一名优秀的程序员,十分优秀!