我在一个表中根据id收集不同类型值的相同相似数据:
+------+---------------+-----------------+----------------+
| id | TransID | Amount | InsertDate |
+------+---------------+-----------------+----------------+
| 1 | 1 | 12 | 19-03-2004 |
| 2 | 2 | 9 | 20-03-2004 |
| 3 | 3 | 4 | 21-03-2004 |
| 4 | 1 | 12 | 22-03-2004 |
| 5 | 2 | 9 | 23-03-2004 |
| 6 | 3 | 4 | 24-03-2004 |
| 7 | 1 | 12 | 25-03-2004 |
+------+---------------+-----------------+----------------+
当我根据 TransID 为 1 选择表时,我希望根据表的 ID 为记录设置一个唯一的自动递增 ID。
如何做到这一点?因此结果将是
+------+---------------+-----------------+----------------+---------------
| id | TransID | Amount | InsertDate | NewGeneratedID
+------+---------------+-----------------+----------------+-----------------
| 1 | 1 | 12 | 19-03-2004 | 1
| 4 | 1 | 12 | 22-03-2004 | 2
| 7 | 1 | 12 | 25-03-2004 | 3
+------+---------------+-----------------+----------------+ ---------------
并且当我只选择表的特定 id 时,例如 id 4,它将给我 NewGeneratedID 2,而不是 1。
+------+---------------+-----------------+----------------+---------------
| 4 | 1 | 12 | 22-03-2004 | 2
+------+---------------+-----------------+----------------+
最佳答案
您可以根据您的要求使用以下查询
SELECT t.id,t.TransID ,t.Amount,t.InsertDate ,(@num:=@num+1) AS
NewGeneratedID FROM table1 t cross join (SELECT @num:=0) AS dummy
where t.TransID=1 ORDER BY id;
关于mysql - 从唯一 id mysql 生成自动增量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36725776/