重复值的序数位置

时间:2014-02-05 10:49:05

标签: mysql

这更像是一个抽象的问题。例如,一个表

| 动物 |

|猫|

|狗|

|狗|

|猫|

|猫|

|狗|

我想要检索的是

| 动物 | pos |

|猫| 1 |

|狗| 1 |

|狗| 2 |

|猫| 2 |

|猫| 3 |

|狗| 3 |

当然,动物不仅限于猫和狗,重复可能会更大。

任何可以看的地方都非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

select animal,
 case animal
        when 'cat' then @cat:=@cat+1
        when 'dog' then @dog:=@dog+1
 end as animal_row_num
from animals,
     ( select @cat:=0, @dog:=0 ) animal_row_nums

MySQL小提琴 Demo