如何在MySQL查询中生成序号
我在MySQL中的数据类似于:如何在MySQL查询中生成序号,mysql,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 要完全按照您的要求获得结果,以下是
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
要完全按照您的要求获得结果,以下是一个查询:
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`
是sqlfiddle,因此您可以自己测试。您的意思是您的序列号与字段项的值相关吗?如果是这样的话,就计算一个散列值。是的……你能告诉我查询结果吗?你为什么不使用1A、1B、2A、3C等等……它不依赖于项……请仔细阅读它依赖于否。非常好……适用于五到七个值,但每行只能得到一个……请帮助。。