2012-03-21 16 views
5

私は一連の権限を持つテーブルを持っています。文字列中の特定の位置pですべてのユーザの権限をYに変更する必要があります。私はそれを行うためのプログラム/スクリプトを書かなければなりませんか?MySQLの文字列内の特定の文字を変更する

答えて

7

あなたは、MySQLに連結し、部分文字列の組み合わせを使用することができます。

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

あなたの列の名前を「12345」を置き換えることができます。

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

+0

insert()関数の使用を推奨します。 Guidoは、1つの他の文字に対して1つの文字の変更を実行するように見えます。したがって、insert()は正しいでしょう。 source-length!= dest-lengthの場合、例えば5 charを10個変更する場合は、substring()を使用するのが正しいでしょう。 – Peter

0

ジャスト挿入()関数を使用します。ソース文字列、挿入したい文字列、char長を与えます。同様に:

この場合
UPDATE TAB_SAP SET tsap_xgen = INSERT(tsap_xgen, 52, 1, '0') WHERE tsap_unidade = '1392398397' AND SUBSTR(tsap_xgen,52,1) != '0' 

は、私が会社に属している消防士(Sapador)(unidade)と、文字列内の特定のフラグ(SUBSTRなど(tsap_xg​​en、52,1)のレコードを検索します!= WHERE句の '0'部分)、この文字列を更新してcharを '0'に変更します。 INSERT(field_name、52,5、 'Hello')

関数の名前は「挿入」ではなく「消去」しているので「strange」です新しい文字を配置する場所にchar。

関連する問題