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

MariaDBでのSUBSTRING_INDEX()のしくみ

    MariaDBでは、SUBSTRING_INDEX() 組み込みの文字列関数です。指定された区切り文字が一定回数発生する前の文字列から部分文字列を返します。

    SUBSTRING_INDEX() 3つの引数が必要です。文字列、区切り文字、およびカウント(つまり、その区切り文字の出現回数)。

    構文

    構文は次のようになります:

    SUBSTRING_INDEX(str,delim,count)

    str 文字列、delim は区切り文字であり、count 返される部分文字列を決定するために使用するその区切り文字の出現回数です。

    countの場合 が正の場合、最後の区切り文字の左側(左から数えて)のすべてが返されます。 countの場合 が負の場合、最後の区切り文字の右側(右から数えて)のすべてが返されます。

    基本的な例は次のとおりです。

    SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3);

    結果:

    +-------------------------------------------------------+
    | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3) |
    +-------------------------------------------------------+
    | /users/homer                                          |
    +-------------------------------------------------------+

    負の数

    カウントに負の値を指定すると、文字列の末尾から逆方向にカウントされます:

    SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3);

    結果:

    +--------------------------------------------------------+
    | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3) |
    +--------------------------------------------------------+
    | homer/docs/cat_vids                                    |
    +--------------------------------------------------------+

    区切り文字が見つかりません

    文字列に区切り文字が存在しない場合は、文字列全体が返されます:

    SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3);

    結果:

    +-------------------------------------------------------+
    | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3) |
    +-------------------------------------------------------+
    | /users/homer/docs/cat_vids                            |
    +-------------------------------------------------------+

    ヌル引数

    引数のいずれか(またはすべて)がnullの場合 、SUBSTRING_INDEX() 関数はnullを返します :

    SELECT 
        SUBSTRING_INDEX(null, '/', 3) AS "1",
        SUBSTRING_INDEX('/users/homer/docs/cat_vids', null, 3) AS "2",
        SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', null) AS "3",
        SUBSTRING_INDEX(null, null, null) AS "4";

    結果:

    +------+------+------+------+
    | 1    | 2    | 3    | 4    |
    +------+------+------+------+
    | NULL | NULL | NULL | NULL |
    +------+------+------+------+

    引数がありません

    SUBSTRING_INDEX()を呼び出す 引数を渡さないとエラーが発生します:

    SELECT SUBSTRING_INDEX();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBSTRING_INDEX'

    1. SQL Server 2008データベースを使用してvb.netまたはC#デスクトップアプリケーションにPower BIレポートとダッシュボードを埋め込む方法はありますか?

    2. SQLiteConnectionオブジェクトのリークを防ぐことができません

    3. SELECTステートメントでto_date例外を処理して、それらの行を無視するにはどうすればよいですか?

    4. MySQLデフォルトデータベース