我有一个表格,其中包含不同年份的多个结果。我的第一年是我的决定年(之后的所有年份都按照第一年)。我的第一年栏是按其中结果的计数降序排列的。 这是我的表格的示例。
+----+------+-------+------+------+
| ID | Year | ID2 |Year1 |Year2 |
+----+------+-------+------+------+
| 1 | 1 | 12 |B | |
| 1 | 1 | 13 |B | |
| 1 | 1 | 22 |A | |
| 1 | 2 | 12 | |B |
| 1 | 2 | 15 | |A |
| 1 | 2 | 17 | |C |
| 1 | 2 | 25 | |C |
| 1 | 2 | 30 | |D |
+----+------+-------+------+------+
列Year1
和Year2
需要更改为数字。第一个结果将为 1(因此,B 将变为 1),第二个结果将为 2(因此,A 将变为 2),依此类推。
Year1
列是主列,它将决定 Year2
列中的内容。这意味着,Year2
列中的结果将获取 Year1
列中的结果(B=1,A=2),但一旦引入新结果,结果将增加1(C 为 3,D 为 4)
所以表格应该是这样的。
+----+------+-------+------+------+
| ID | Year | ID2 |Year1 |Year2 |
+----+------+-------+------+------+
| 1 | 1 | 12 |1 | |
| 1 | 1 | 13 |1 | |
| 1 | 1 | 22 |2 | |
| 1 | 2 | 12 | |1 |
| 1 | 2 | 15 | |2 |
| 1 | 2 | 17 | |3 |
| 1 | 2 | 25 | |3 |
| 1 | 2 | 30 | |4 |
+----+------+-------+------+------+
此外,这些列直到 Year10
为止,并且列 ID
、Year
和 ID2
创建一个键。
此时任何想法都会有帮助。感谢您的帮助!
最佳答案
一个粗略的方法是在单独的临时表中处理每年的数据。
然后创建另一组临时表来使用 row_number() 等方法确定字母的编号。
用数字更新你的字母。
最后将它们结合在一起。
关于mysql - 根据mysql中的列更改查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31842454/