sql >> データベース >  >> RDS >> SQLite

SQLiteでReplace()がどのように機能するか

    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                            

    1. PL/pgSQLのEXECUTE...USINGステートメントはレコードタイプでは機能しませんか?

    2. フラッシュキャッシュのピンテーブル

    3. CentOS7でMySQL8.0を使用してPHP5アプリケーションを実行する方法

    4. MySQLで低速クエリログを有効にする方法