MySQL の SUBSTRING()

ここでは MySQL のよく使うビルトイン関数の SUBSTRING() についてご説明します。

MySQL の SUBSTRING() の使い方

MySQL の SUBSTRING() は、文字列の一部の文字列を返す組み込み関数です。

SUBSTRING() の構文は次の通りです。

SUBSTRING(文字列, 開始位置 [, 長さ])

「開始位置」は整数で指定し、一番最初の文字は 1 から始まり、2 が二番目の文字、3 が三番目の文字、、です。

「開始位置」をマイナスの値で指定すると、文字列の後ろからカウントされるようになり -1 が一番最後の文字、-2 が最後から二番目の文字、、のようになります。

「開始位置」に 0 を指定してもエラーにはなりませんが、空の文字列が返ります。


「長さ」も整数で指定し、開始位置から指定した文字数が返ります。

「長さ」はオプショナルで、指定しなければ、開始位置から残りの文字が全て返ります。

「長さ」に 0 やマイナスを指定してもエラーにはなりませんが、空っぽの文字列が返ります。


引数にカンマを使わずに SUBSTRING(文字列 FROM 開始位置 [FOR 長さ]) のように指定することもできます。

MID() と SUBSTR() は UBSTRING() のシノニムなので、全く同様の方法で使えます。


MySQL の SUBSTRING() を使って確認する

それでは実際に MySQL の SUBSTRING() を使ってその結果を見てみましょう。

わかりやすいように '123456789' という文字列の一部を SUBSTRING() を使って取得します。


SELECT 	SUBSTRING('123456789', 2),
		SUBSTRING('123456789', 0),
        SUBSTRING('123456789', 10),
        SUBSTRING('123456789', -3);

[実行結果]

MySQL の SUBSTRING() 1

まずは、文字列と開始位置のみを引数に渡したケースです。

1 行目の SUBSTRING('123456789', 2) では、2 番目の文字から残り全ての '23456789' がかえっています。

2 行目と 3 行目は開始位置が存在しない値なので、空の文字列がかえっています。

4 行目の SUBSTRING('123456789', -3) では、マイナスの時は後ろから数えるので、後ろから 3 番目の 7 を開始位置にして、残り全ての '789' がかえっています。


次は、長さも指定して、SUBSTRING() を使ってみます。

SELECT	SUBSTRING('123456789', 2, 5),
        SUBSTRING('123456789', 2, 0),
		SUBSTRING('123456789', 2, -1),
		SUBSTRING('123456789', -4, 3);

[実行結果]

MySQL の SUBSTRING() 2

1 行目の SELECT SUBSTRING('123456789', 2, 5) では、2 番目の文字から 5 文字の '23456' がかえっています。

2 行目と 3 行目は長さに 0 やマイナスの値を指定すると空の文字列がかえるので、空白になっています。

4 行目の SUBSTRING('123456789', -4, 3) では、開始位置がマイナスの時は後ろから数えるので、後ろから 4 番目の 6 を開始位置にして、そこから 3 文字の '678' がかえっています。


以上、MySQL のよく使うビルトイン関数の SUBSTRING() についてご説明しました。

© 2024 MySQL 入門