MySQL関数リファレンス

区切り文字列N個目までの文字列を取り出す (SUBSTRING_INDEX)

スポンサードリンク
書式
SUBSTRING_INDEX( 文字列, 区切文字列, 数値N )

SUBSTRING_INDEX関数を使用することで、区切り文字N個目までの文字列を取り出すことができます。
第3引数で負の数値を指定することで、文字列を右側から取り出すこともできます。

例1(区切り文字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)
例2(区切り文字列を3文字で指定した場合)
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)
例3(第3引数を負の数値で指定した場合)
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の空文字が返されます。

例4
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)
スポンサードリンク
Sではじまる MySQL の関数 / 文字列を扱う関数

文字列を扱う関数

1文字目のアスキーコードを調べる (ASCII)
1文字目の文字コードを調べる (ORD)
文字コードを文字に変換する (CHAR)
文字列を結合する (CONCAT)
文字列を結合する(区切文字を間に挟む) (CONCAT_WS)
文字列のバイト数を調べる (LENGTH)
文字列の文字数を調べる (CHAR_LENGTH)
文字列のビット数を調べる (BIT_LENGTH)
特定の文字列が最初に出現する位置を調べる (LOCATE)
特定の文字列が最初に出現する位置を調べる (POSITION)
特定の文字列が最初に出現する位置を調べる (INSTR)
特定の文字を左側に追加して文字列の長さを整える (LPAD)
特定の文字を右端に追加して文字列の長さを整える (RPAD)
文字列の左側から文字列を取り出す (LEFT)
文字列の右側から文字列を取り出す (RIGHT)
文字列から位置を指定して文字列を取り出す (SUBSTRING)
文字列から位置を指定して文字列を取り出す (MID)
区切り文字列N個目までの文字列を取り出す (SUBSTRING_INDEX)
X進数をY進数へ変換する (CONV)
10進数の整数を2進数に変換する (BIN)
10進数の整数を8進数に変換する (OCT)
10進数の整数を16進数に変換する (HEX)
文字列の左側から半角スペースを削除する (LTRIM)
文字列の右側から半角スペースを削除する (RTRIM)
文字列の両側から特定の文字列を削除する (TRIM)
値をシングルクオートで囲み特殊文字をエスケープする (QUOTE)
任意の数の半角スペースを生成する (SPACE)
任意の文字列を任意の数だけ生成する (REPEAT)
文字列を反転させる (REVERSE)
アルファベット大文字を小文字に変換する (LOWER)
アルファベット大文字を小文字に変換する (LCASE)
アルファベット小文字を大文字に変換する (UPPER)
アルファベット小文字を大文字に変換する (UCASE)
スポンサードリンク

Sではじまる MySQL の関数

SECOND 時刻から秒を取り出す
SESSION_USER 接続時に指定されたユーザー名を確認する
SHA SHA1で暗号化する
SHA1 SHA1で暗号化する
SIGN 符号を調べる
SIN サインを求める
SPACE 任意の数の半角スペースを生成する
SQRT 平方根を求める
SUBSTRING 文字列から位置を指定して文字列を取り出す
SUBSTRING_INDEX 区切り文字列N個目までの文字列を取り出す
SUM 合計を求める
SYSTEM_USER 接続時に指定されたユーザー名を確認する