mysql表中有一个名为marks的列。标记如 43、67、97、30、50 等。
我想创建另一个列,其名称为位置。数据应根据标记自动添加到该列。
例如:
对于标记 97,位置应为 1,
对于标记 67,位置应为 2,
对于 50 分,位置应为 3,
如何自动填充位置列?
最佳答案
假设 student
是包含标记和位置列的表格,请尝试以下查询:
UPDATE student
JOIN (
SELECT id, IF(@prev <> marks, @s:=@s+1, @s:=@s) AS position, @prev:=marks AS marks
FROM student, (SELECT @s:= 0, @prev:=0) s
ORDER BY marks DESC
) t
ON student.id = t.id
SET student.position = t.position
关于MySQL根据另一列自动填充列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422518/