MYSQL-在表中生成子集序列

前端之家收集整理的这篇文章主要介绍了MYSQL-在表中生成子集序列 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有下表

  1. Id Value
  2. 1 3
  3. 1 12
  4. 1 67
  5. 2 7
  6. 2 99
  7. 5 30
  8. 5 33
  9. 5 4
  10. 5 87
  11. 5 12
  12. 5 1

我想对其进行更新以包含此表.

  1. Id UniqueIdBySubSet Value
  2. 1 1 3
  3. 1 2 12
  4. 1 3 67
  5. 2 1 7
  6. 2 2 99
  7. 5 1 30
  8. 5 2 33
  9. 5 3 4
  10. 5 4 87
  11. 5 5 12
  12. 5 6 1

我在SO上找到了理想的线程,但这是针对mssql的.我使用的是MysqL 4.1.10.

可以在这里找到另一个线程:Generating sequences for subsets of a table.

有谁知道我如何在MysqL中做到这一点?

谢谢,
让·弗朗索瓦

最佳答案
  1. SET @r := 0;
  2. SET @id := 0;
  3. UPDATE mytable m
  4. SET m.UniqueIdBySubSet = IF(@id = id,@r := @r + 1,@r := (@id := id) - id)
  5. ORDER BY
  6. id,value;

猜你在找的MySQL相关文章