Mysql使计数值增加1

时间:2018-03-21 11:56:52

标签: mysql

我想在其他列中添加多个计数器。 我在mysql数据库中有两行,并且我在第二列中有多个id,所以我想在其他列中添加1,2,3等计数器。

我的屏幕截图如下:

enter image description here

在图像中1889是两次,我希望这两个意味着所有重复值增加1。

预期产量: 1889 dell1 1889年dell2 1890年dell0 1891年dell0

1889年以上两次输出是1889 dell1,1889 dell2。 1890和191是单一的,因此dell后面的输出为0。

所以我希望在dell后面增加1。

如果有人知道mysql查询,请通知我。

1 个答案:

答案 0 :(得分:0)

你在这里提到它的问题是按分区排名的一个例子。 Oracle有内置函数来获取这样的输出,但是MySQL并没有这样的东西。

select result.YEAR, CONCAT(result.NAME,'',result.rank) from (
  SELECT    name,
              year,
              IF(year=@last,@curRank:=@curRank+1,@curRank:=0) AS rank,
              @_sequence:=@_sequence+1,
              @last:=year
    FROM      COMPUTER , (SELECT @curRank := 1, @_sequence:=1, @last:=0) r
    ORDER BY  year asc) as result;

您可以参考fiddle here

我已经从另一个answer here参考了。