RIGHT( 文字列, 数値 )
RIGHT関数を使用することで、文字列の右側から数値でした文字数だけ文字列を取り出すことができます。
mysql> SELECT RIGHT( 'MySQL関数リファレンス', 7 ); +-------------------------------------+ | RIGHT( 'MySQL関数リファレンス', 7 ) | +-------------------------------------+ | 数リファレンス | +-------------------------------------+ 1 row in set (0.00 sec)
対象の文字列の長さよりも大きい数値を指定した場合、文字列がすべて返されます。
その際、スペースなどによるパディングは行われません。
mysql> SELECT RIGHT( 'MySQL関数リファレンス', 100 ); +---------------------------------------+ | RIGHT( 'MySQL関数リファレンス', 100 ) | +---------------------------------------+ | MySQL関数リファレンス | +---------------------------------------+ 1 row in set (0.00 sec) mysql> -- スペースなどのパディングは行われていない mysql> SELECT CHAR_LENGTH( RIGHT( 'MySQL関数リファレンス', 100 ) ); +------------------------------------------------------+ | CHAR_LENGTH( RIGHT( 'MySQL関数リファレンス', 100 ) ) | +------------------------------------------------------+ | 13 | +------------------------------------------------------+ 1 row in set (0.00 sec)
文字数に0を指定した場合は長さ0の空文字が返されます。
mysql> SELECT RIGHT( 'MySQL関数リファレンス', 0 ); +-------------------------------------+ | RIGHT( 'MySQL関数リファレンス', 0 ) | +-------------------------------------+ | | +-------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT CHAR_LENGTH( RIGHT( 'MySQL関数リファレンス', 0 ) ); +----------------------------------------------------+ | CHAR_LENGTH( RIGHT( 'MySQL関数リファレンス', 0 ) ) | +----------------------------------------------------+ | 0 | +----------------------------------------------------+ 1 row in set (0.00 sec)
文字数に負の数値を指定した場合は0を指定した場合と同じ動作をします。
mysql> SELECT RIGHT( 'MySQL関数リファレンス', -10 ); +---------------------------------------+ | RIGHT( 'MySQL関数リファレンス', -10 ) | +---------------------------------------+ | | +---------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT CHAR_LENGTH( RIGHT( 'MySQL関数リファレンス', -10 ) ); +------------------------------------------------------+ | CHAR_LENGTH( RIGHT( 'MySQL関数リファレンス', -10 ) ) | +------------------------------------------------------+ | 0 | +------------------------------------------------------+ 1 row in set (0.00 sec)
文字列の抽出を右側からではなく、左側から行う場合はLEFT関数を使用します。
文字列の抽出を端からではなく、文字列の途中から行う場合はSUBSTRING関数またはMID関数を使用します。