我想让一个字符串的值按序列增加,增加如下:
OP-SU-00000001
OP-SU-00000002
OP-SU-00000003
OP-SU-00000004
OP-SU-00000005
OP-SU-00000006
OP-SU-00000007

解决方案 »

  1.   

    create table test(id int primary key auto_increment,b int)
    select concat('OP-SU-',right(concat('0000000',id),8))
    from tb
      

  2.   

    增加自增字段,
    用concat('OP-SU-',right(concat('0000000',id),8))解决
      

  3.   

    那如果要用这个编号做为查询条件的情况下面,还要套一层SQL?我以前用oracle开发的时候,是直接通过一个序列然后在处理下,写进表里?难道MYSQL就一定要用触发器了?
      

  4.   

    MYSQL不是ORACLE,
    1个自增字段,1个字段(lid)保存你的字符串,在TRIGGER中
    set new.lid=concat('OP-SU-',right(concat('0000000',new.id),8))
      

  5.   

    是的,如果MYSQL什么都与ORACLE一样,你觉得这个世界会怎么样?
      

  6.   

    使用zerofill特性,蛮好的:
    mysql> create table test(id int(8) zerofill primary key auto_increment, col2 int);
    Query OK, 0 rows affected (0.08 sec)mysql> insert into test (col2) values(100);
    Query OK, 1 row affected (0.00 sec)mysql> select concat('OP-SU-', id), col2 from test;
    +----------------------+------+
    | concat('OP-SU-', id) | col2 |
    +----------------------+------+
    | OP-SU-00000001       |  100 |
    +----------------------+------+
    1 row in set (0.01 sec)mysql> insert into test (col2) values(199);
    Query OK, 1 row affected (0.00 sec)mysql> select concat('OP-SU-', id), col2 from test;
    +----------------------+------+
    | concat('OP-SU-', id) | col2 |
    +----------------------+------+
    | OP-SU-00000001       |  100 |
    | OP-SU-00000002       |  199 |
    +----------------------+------+
    2 rows in set (0.00 sec)mysql>