SUBSTRING関数(文字列の指定した位置から指定した文字数分だけ取得する)

MySQL で SUBSTRING 関数を使用すると引数に指定した文字列から指定した位置から指定した文字数分だけ取得することができます。ここでは MySQL における SUBSTRING 関数の使い方について解説します。

※ 関連する関数 LEFT関数/RIGHT関数

(Last modified: )

SUBSTRING関数の使い方

SUBSTRING 関数は引数に指定した文字列の指定した位置から指定の文字数分の部分文字列を取得するために使用します。書式は次の通りです。

SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)

引数に指定した文字列( str )を指定した位置( pos )から文字数( len )分だけ取得します。 文字数を指定しない場合は文字列の最後まで取得します。

なお位置の指定を行うときに最初の文字の位置が 1 となります。

※ SUBSTR 関数も同じです。

-- --

それでは実際に試してみます。最初に文字数を指定しない場合です。次のように実行してください。

select substring('Hello! World', 3), substring('Mineral Water' from 4);

MySQL/SUBSTRING 関数の使い方(1)

3 文字目から文字列の最後までと、 4 文字目から文字列の最後までの部分文字列をそれぞれ取得しました。

次に文字数を合わせて指定します。

select substring('Hello! World', 3, 6), substring('Mineral Water' from 4 for 7);

MySQL/SUBSTRING 関数の使い方(2)

3 文字目から 6 文字分と、 4 文字目から 7 文字分の部分文字列をそれぞれ取得しました。

マルチバイト文字でも試してみます。

select substring('東京都千代田区', 4, 3);

MySQL/SUBSTRING 関数の使い方(3)

位置および長さの単位は文字数なので、マルチバイト文字であっても同じように取得することができます。

-- --

substring 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。