如何在MySQL查询中生成Serial No

时间:2015-06-06 10:09:58

标签: mysql

我在MySQL中的数据类似于:

NO    Item
-----------------------
 1     A
 1     B
 1     C
 2     A
 3     C

但我想为此生成序列号:

SrNo   NO    Item
-----------------------
 1      1     A
 2      1     B
 3      1     C
 1      2     A
 1      3     C

1 个答案:

答案 0 :(得分:0)

要完全按照您要求的方式获得结果,这里有一个查询:

SET @prev_value = NULL;
SET @rank_count = 0;
SELECT CASE
    WHEN @prev_value = `NO` THEN @rank_count := @rank_count + 1 
    WHEN @prev_value := `NO` THEN @rank_count := 1 END AS `SrNo`, `NO`, `item`
FROM `Table1`
ORDER BY `NO`, `item`

Here是sqlfiddle,所以你可以自己测试一下。