2012-03-21 22 views

cevap

7

Sen MySQL concat ve alt dize bir arada kullanabilirsiniz:

mysql> select concat(substring('12345',1,3),'A',substring('12345',5)); 
+---------------------------------------------------------+ 
| concat(substring('12345',1,3),'A',substring('12345',5)) | 
+---------------------------------------------------------+ 
| 123A5             | 
+---------------------------------------------------------+ 

Sen sütunun adıyla '12345' yerini alabilir.

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

+0

insert() işlevinin kullanılmasını öner. Guido, bir başına bir char değişimi yapar gibi görünüyor. Yani insert() doğru olacaktır. Alt dizgiyi() kullanmak, örneğin 5 karakterlik 10 karakter değiştirmek istendiğinde haklı olacaktır, bu nedenle kaynak uzunluğu = = yoklama uzunluğu. – Peter

0

Sadece insert() işlevini kullanın. Bunu, kaynak dizgisini, eklemek istediğiniz dizeyi ve karakter uzunluğunu verirsiniz. Gibi:

Bu durumda
UPDATE TAB_SAP SET tsap_xgen = INSERT(tsap_xgen, 52, 1, '0') WHERE tsap_unidade = '1392398397' AND SUBSTR(tsap_xgen,52,1) != '0' 

, bir şirkete ait bir itfaiyeci (Sapador) (unidade) ve bir dize belirli bayrak (SUBSTR olarak (tsap_xgen, 52,1) kaydını aramak ! = '0' WHERE yan tümcesinin parçası), sonra char '0' olarak değiştirmek için bu dizeyi güncelleştirin. Insert() öğesini kullanarak, birden fazla karakter değiştirebilirsin, örneğin INSERT (alan_adı, 52, 5, 'Hello')

İşlevi, "ekleme" değil "sil" olduğu için "garip" olduğunu unutmayın. Yeni chars koymak için yere char.

İlgili konular