MySQL 指定した間隔で文字列を置換する

MySQL 指定した間隔で文字列を置換する

MySQLで、指定した間隔で文字列を置換する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))
  • MySQL Workbench 8.0.27

手順

指定した間隔で文字列を置換するには、「INSERT( )」を使用します。

INSERT( '置換する文字列', '位置', '置換する文字数', '置換する文字列')

実際に、実行して置換してみます。

SELECT 
INSERT('abcdefg',3,3,'CDE'),
INSERT('abcdefg',3,4,'CDE'),
INSERT('abcdefg',3,5,'CDE')

実行結果を確認すると、置換されていることが確認できます。

指定した文字数の範囲を置換する文字列が超えても、問題なく置換されます。

SELECT 
INSERT('abcdefg',3,1,'CDEFGHI'),
INSERT('abcdefg',3,5,'CDEFGHI')

実行結果

開始位置の範囲を超えると、マルチバイト文字と、それ以外では挙動が異なります。

SELECT 
INSERT('abc',4,1,'DE'),
INSERT('あいう',4,1,'えお')

実行結果

日本語

日本語にも使用することが可能です。

SELECT 
INSERT('おはようございます',5,5,'さん')

実行結果

サロゲートペア

サロゲートペア文字にも使用できます。

SELECT 
INSERT('😅😆😇',3,1,'😈')

実行結果