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

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

    SQLite substr() 関数を使用すると、文字列内の指定された開始位置に基づいて、文字列からサブ文字列を返すことができます。

    2つの引数が必要で、3番目のオプションの引数を受け入れます。

    更新 :SQLite 3.34.0(2020年12月1日にリリース)以降、substr() substring()と呼ぶことができるようになりました SQLServerとの互換性のため。

    構文

    substr()を呼び出すことができます 次のいずれかの方法で:

    substr(X,Y,Z)
    substr(X,Y)
    substring(X,Y,Z)
    substring(X,Y)
    • X 返す部分文字列を含む完全な文字列です。
    • Y は、その文字列から返すサブ文字列の最初の文字の場所です。
    • Z 返される文字数です。省略した場合、後続のすべての文字が返されます(Yから開始) 。

    Xの場合 は文字列であり、文字インデックスは実際のUTF-8文字を参照します。 Xの場合 がBLOBの場合、インデックスはバイトを参照します。

    substring()に注意してください 構文はSQLite3.34.0からのみ利用できます。

    3つの引数を持つ例

    substr()の使用方法を示す基本的な例を次に示します。 3つの引数があります。

    SELECT substr('Industrial', 3, 4);

    結果:

    dust

    2つの引数を持つ例

    前の例の3番目の引数を省略すると、次の結果が得られます。

    SELECT substr('Industrial', 3);

    結果:

    dustrial

    否定的な出発点

    2番目の引数に負の値を指定できます。これを行うと、部分文字列の最初の文字は、左ではなく右から数えて見つけられます。

    SELECT substr('Industrial', -3);

    結果:

    ial

    別の例を次に示します。今回は、部分文字列の長さを指定します。

    SELECT substr('Industrial', -8, 4);

    結果:

    dust

    したがって、負の値はsubstring()を使用する場合と同じ効果があります MySQLで機能します。 MySQLにはsubstr()もあります substring()の同義語である関数 働き。

    ただし、これはSQLServerが負の値を処理する方法とは異なります。 substring()に負の値を渡す場合 SQL Serverでは、文字列が始まる前の架空のポイントからカウントを開始します。

    負の部分文字列の長さ

    前の例では、負の開始点を使用しました。この例では、負の長さを使用します。これは、3番目の引数に負の値を提供することを意味します。

    SELECT substr('Industrial', -3, -4);

    結果:

    ustr

    したがって、3番目の引数に負の値を指定すると、開始点の前の文字が返されます。

    これは、2番目の引数が正の値の場合にも当てはまります。

    SELECT substr('Industrial', 7, -4);

    結果:

    dust

    データベースの例

    substr()を使用する例を次に示します。 Chinookサンプルデータベースに対するデータベースクエリで。

    SELECT substr(Title, 1, 20)
    FROM Album
    LIMIT 10;

    結果:

    substr(Title, 1, 20)
    --------------------
    For Those About To R
    Balls to the Wall   
    Restless and Wild   
    Let There Be Rock   
    Big Ones            
    Jagged Little Pill  
    Facelift            
    Warner 25 Anos      
    Plays Metallica By F
    Audioslave          

    1. データベース構造変更のためのバージョン管理システムはありますか?

    2. 16の異なるクエリ例を使用したMySQLのWHERE条件

    3. SQL-サーバーのIPアドレスを取得するためのクエリ

    4. Docker上でMySQLGaleraクラスター用にProxySQL2.0を実行および構成する方法