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和最高平均值来安排职位。但当平均值和gmp都相同时,我需要有相同的职位。
例如,位置3和位置4的平均值和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
)