position | Average | gpmp
1 70.60 2.0
2 60.20 2.3
3 59.80 4.8
4 59.80 4.8
5 45.70 5.6
大家好,
如上表,我需要按照最低的gpmp和最高的平均值来排列位置。但是当 average 和 gmp 相同时,我将需要有相同的位置。
比如位置3和4的average和gpmp是一样的。我如何生成 mysql 查询或使用 php 函数,以便在它们检测到相同的平均值和 gpmp 并将位置 4 更改为 3 之后。
也就是说函数生成后会变成下表的样子。
position | Average | gpmp
1 70.60 2.0
2 60.20 2.3
3 59.80 4.8
3 59.80 4.8
5 45.70 5.6
最佳答案
这是一种更新表格的简单方法,如您在帖子中所述 - 获取顺序位置并相应地更新它们。它不计算位置或任何东西,只使用已经存在的数据:
UPDATE `table` t SET position = (
SELECT MIN(position) FROM (SELECT * FROM `table`) t2 WHERE t.Average = t2.Average AND t.gpmp = t2.gpmp
)
关于php - MySQL : How to set to same position if row value is the same?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230559/