MySQL の LEFT()・RIGHT()
ここでは MySQL のよく使う文字列関数の LEFT() と RIGHT() 関数についてご説明します。
MySQL の LEFT() 関数の使い方
MySQL の LEFT() 関数は、文字列の左側から、指定した長さ分の文字列を返す関数です。
LEFT(文字列, 長さ)
文字列の長さより長い「長さ」を指定すると、文字列がそのまま返ります。
指定した長さが 0 以下の場合は、空文字列が返ります。
文字列と長さのどちらかが NULL の時は NULL が返ります。
LEFT() 関数はマルチバイトセーフなので、指定する文字列がマルチバイトでも問題ありません。
それでは、LEFT() 関数を使って、実際に左側から指定した文字数分の文字列を取得してみます。
SELECT LEFT('ABCDEFG', 3),
LEFT('ABCDEFG', 10),
LEFT('ABCDEFG', -1),
LEFT(NULL, 3),
LEFT('日本総領事館', 3);
[実行結果]
1 行目の LEFT('ABCDEFG', 3) は、左から 3 文字分の 'ABC' を返しています。
2 行目の LEFT('ABCDEFG', 10) では、10 は 'ABCDEFG' の長さの 7 より長いので、'ABCDEFG' をそのまま返しています。
3 行目の LEFT('ABCDEFG', -1) では、長さがマイナスなので、空文字列を返しています。
4 行目の LEFT(NULL, 3) は、文字列が NULL なので NULL を返しています。
5 行目の LEFT('日本総領事館', 3) も、左から 3 文字分の '日本総' を返しています。
MySQL の RIGHT() 関数の使い方
MySQL の RIGHT() 関数は、文字列の右側から、指定した長さ分の文字列を返す関数です。
右から指定した長さの文字列を取得するか、左から指定した長さの文字列を取得するかが違うだけで、使い方は LEFT() 関数と同じです。
RIGHT(文字列, 長さ)
LEFT() 関数と同様に、文字列の長さより長い「長さ」を指定すると、文字列がそのまま返ります。
指定した長さが 0 以下の場合は、空文字列が返ります。
文字列と長さのどちらかが NULL の時は NULL が返ります。
RIGHT() 関数もマルチバイトセーフなので、指定する文字列がマルチバイトでも問題ありません。
先ほどと同じクエリーを、RIGHT() 関数に変えて、右側から指定した文字数分の文字列を取得してみます。
SELECT RIGHT('ABCDEFG', 3),
RIGHT('ABCDEFG', 10),
RIGHT('ABCDEFG', -1),
RIGHT(NULL, 3),
RIGHT('日本総領事館', 3);
[実行結果]
1 行目の RIGHT('ABCDEFG', 3) は、右から 3 文字分の 'EFG' を返しています。
2 行目の RIGHT('ABCDEFG', 10) では、10 は 'ABCDEFG' の長さの 7 より長いので、'ABCDEFG' をそのまま返しています。
3 行目の RIGHT('ABCDEFG', -1) では、長さがマイナスなので、空文字列を返しています。
4 行目の RIGHT(NULL, 3) は、文字列が NULL なので NULL を返しています。
5 行目の RIGHT('日本総領事館', 3) も、右から 3 文字分の '領事館' を返しています。
以上、MySQL の LEFT() と RIGHT() 関数についてご説明しました。