SQLite replace()
関数を使用すると、1つの文字列(または文字列の一部)を別の文字列に置き換えることができます。
それが機能する方法は、3つの引数を提供することです。置換する部分文字列、置換するその文字列内の部分文字列、および置換する文字列を含む文字列。
構文
構文は次のようになります:
replace(X,Y,Z)
この関数は、文字列Xで文字列Yが出現するたびに、文字列Zを代入して形成された文字列を返します。
BINARY照合シーケンスが比較に使用されます。 Yが空の文字列の場合、Xを変更せずに返します。 Zが最初は文字列でない場合は、処理前にUTF-8文字列にキャストされます。
例
簡単な例を次に示します。
SELECT replace('Red Sky', 'Red', 'Blue');
結果:
Blue Sky
最初の引数に2番目の引数が見つからない場合は、何も置き換えられず、元の文字列が返されます。
SELECT replace('Red Sky', 'Green', 'Blue');
結果:
Red Sky
2番目の引数が空の文字列の場合も、何も置き換えられず、元の文字列が返されます。
SELECT replace('Red Sky', '', 'Blue');
結果:
Red Sky
しかし、3番目の議論についても同じことは言えません。それが空の文字列である場合(そして2番目の引数が最初の引数にある場合)、文字列から2番目の引数が削除されます。
SELECT replace('Red Sky', 'Red', '');
結果:
Sky
ただし、文字列に2番目の引数が見つからない場合、これは発生しません。
SELECT replace('Red Sky', 'Blue', '');
結果:
Red Sky
非文字列への置き換え
3番目の引数が文字列でない場合は、処理前にUTF-8文字列にキャストされます。
SELECT replace('Red Sky', 'Red', 8);
結果:
8 Sky
データベースの例
これは、データベーステーブルからデータを取得し、指定された文字列/サブ文字列を別の文字列に置き換える例です。
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
結果:
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car