SUBSTRING_INDEX( 文字列, 区切文字列, 数値N )
SUBSTRING_INDEX関数を使用することで、区切り文字N個目までの文字列を取り出すことができます。
第3引数で負の数値を指定することで、文字列を右側から取り出すこともできます。
mysql> SELECT SUBSTRING_INDEX( 'Linux#Apache#MySQL#PHP', '#', 3 ); +-----------------------------------------------------+ | SUBSTRING_INDEX( 'Linux#Apache#MySQL#PHP', '#', 3 ) | +-----------------------------------------------------+ | Linux#Apache#MySQL | +-----------------------------------------------------+ 1 row in set (0.00 sec)
mysql> SELECT SUBSTRING_INDEX( 'Linux#Apache###MySQL#PHP', '###', 1 ); +---------------------------------------------------------+ | SUBSTRING_INDEX( 'Linux#Apache###MySQL#PHP', '###', 1 ) | +---------------------------------------------------------+ | Linux#Apache | +---------------------------------------------------------+ 1 row in set (0.00 sec)
mysql> SELECT SUBSTRING_INDEX( 'Linux#Apache#MySQL#PHP', '#', -2 ); +------------------------------------------------------+ | SUBSTRING_INDEX( 'Linux#Apache#MySQL#PHP', '#', -2 ) | +------------------------------------------------------+ | MySQL#PHP | +------------------------------------------------------+ 1 row in set (0.00 sec)
第3引数に0を指定した場合は長さ0の空文字が返されます。
mysql> SELECT SUBSTRING_INDEX( 'Linux#Apache', '#', 0 ); +-------------------------------------------+ | SUBSTRING_INDEX( 'Linux#Apache', '#', 0 ) | +-------------------------------------------+ | | +-------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT CHAR_LENGTH( SUBSTRING_INDEX( 'Linux#Apache', '#', 0 ) ); +----------------------------------------------------------+ | CHAR_LENGTH( SUBSTRING_INDEX( 'Linux#Apache', '#', 0 ) ) | +----------------------------------------------------------+ | 0 | +----------------------------------------------------------+ 1 row in set (0.00 sec)
SECOND | 時刻から秒を取り出す |
SESSION_USER | 接続時に指定されたユーザー名を確認する |
SHA | SHA1で暗号化する |
SHA1 | SHA1で暗号化する |
SIGN | 符号を調べる |
SIN | サインを求める |
SPACE | 任意の数の半角スペースを生成する |
SQRT | 平方根を求める |
SUBSTRING | 文字列から位置を指定して文字列を取り出す |
SUBSTRING_INDEX | 区切り文字列N個目までの文字列を取り出す |
SUM | 合計を求める |
SYSTEM_USER | 接続時に指定されたユーザー名を確認する |