2016-03-31 11 views
0

'001' koduna +1 eklemeye çalışıyorum ama '009' kodunu '002 ve +1'e değil ama' 10 'olsun' 010 'olsun.+1 koduna '001' ve MySql'deki '009' koduna nasıl eklenir?

Tablo:

create table example 
(
    code  varchar(7), 
    row1  varchar(10), 
    row2  varchar(7), 


CONSTRAINT pk_code PRIMARY KEY (code) 

); 

takın:

select code+1 from example; 

MySql bana verir:

insert into example(code, row1, row2) 
values('001','x1', 'y1'); 

insert into example(code, row1, row2) 
values('009','x2', 'y2'); 

sonraki sorgu deneyin

+----------+ 
| code | 
+----------+ 
|  2 | 
|  10 | 
+----------+ 
+0

bir dizeye dönüştürmek için LPAD kullanın. 'LPAD' kullanın –

+0

Dizeleri matematik yapamazsınız ('001' bir sayı değil), bu nedenle eklemek için bir dizeden bir sayıya dönüştürülmesi gerekir. Yine bu sayının sıfır dolgulu bir dizgi temsili olmasını istiyorsanız, onu geri dönüştürün ve sol tarafa doğru sıfır sayısını ekleyin. –

+0

Yanıtlar için çok teşekkür ederim – Python241820

cevap

2

Matematiksel bir işlem yapmak için MySQL dizenizi bir sayıya dönüştürür ve sonuç tabiki de bir sayıdır. MySQL bir numaraya dize dönüştürür ve sonuç sayı çok tabii bir matematik işlemi yapmak için tekrar

select LPAD(code+1, 3, '0') from example; 
+0

Çok teşekkür ederim çok çalışıyor – Python241820