下表有一批数据需要按相关字段来更新表:
fieldA fieldB
AAA   123A
AAA   123A
AAA  123A
AAA  123A
AAA  123A
BB    123A
BB    123A
CCC 123B以上共有8条记录,我想要按fieldA 和 fieldB都相同的,按3条为上限,更新fieldB列,上表按要求更新后为
fieldA fieldB
AAA   123A
AAA   123A
AAA  123A
AAA  123A.1
AAA  123A.1
BB    123A
BB    123A
CCC 123B即超过3条,fieldB循序加".1",如果相同的第7条即加".2"。想请教大家怎么做到呢? 谢谢大家了!

解决方案 »

  1.   

    CREATE TABLE t( A varchar(10), B varchar(10), C varchar(10));
    INSERT t(A, B) VALUES
    ('AAA', '123A'),
    ('AAA', '123A'),
    ('AAA', '123A'),
    ('AAA', '123A'),
    ('AAA', '123A'),
    ('BB', '123A'),
    ('BB', '123A'),
    ('CCC', '123B');SELECT A, B, C FROM(
    SELECT @i:= CASE WHEN @a=a AND @b=b THEN @i+1 ELSE 0 END, @a:=A, @b:=B,
    IF(@i div 3, @i div 3, '') as C, A, B
    FROM t, (SELECT @i=0, @a=null, @b=null) x
    )XX;
      

  2.   

    如果表上有唯一性的列或组合列,可以关联上术查询更新
    如果没有,就只能查了
    mysql 的 update set 中无法对变量赋值