MySQL関数リファレンス

特定の文字列が最初に出現する位置を調べる (LOCATE)

スポンサードリンク
書式
LOCATE( 検索文字列, 検索対象文字列 )
LOCATE( 検索文字列, 検索対象文字列, 数値 )

LOCATE関数を使用することで特定の文字列が最初に出現する位置を調べることができます。
第3引数に数値を指定することで、何文字目以降を検索対象とするかを指定できます。
検索文字列が見つかった場合はその位置を、見つからなかった場合は0を返します。

例1(1文字目から検索)
mysql> SELECT LOCATE( 'SQ', 'MySQL' );
+-------------------------+
| LOCATE( 'SQ', 'MySQL' ) |
+-------------------------+
|                       3 |
+-------------------------+
1 row in set (0.00 sec)
例2(5文字目以降を検索)
mysql> SELECT LOCATE( 'わに', 'にわにわにわにわとりがいる', 5 );
+---------------------------------------------------+
| LOCATE( 'わに', 'にわにわにわにわとりがいる', 5 ) |
+---------------------------------------------------+
|                                                 6 |
+---------------------------------------------------+
1 row in set (0.00 sec)
例3(検索文字列が見つからなかった場合)
mysql> SELECT LOCATE( 'Perl', 'Linux+Apache+MySQL+PHP' );
+--------------------------------------------+
| LOCATE( 'Perl', 'Linux+Apache+MySQL+PHP' ) |
+--------------------------------------------+
|                                          0 |
+--------------------------------------------+
1 row in set (0.00 sec)
例4(大文字と小文字は区別される)
mysql> SELECT LOCATE( 'php', 'Linux+Apache+MySQL+PHP' );
+-------------------------------------------+
| LOCATE( 'php', 'Linux+Apache+MySQL+PHP' ) |
+-------------------------------------------+
|                                         0 |
+-------------------------------------------+
1 row in set (0.00 sec)

同じ動作をする関数にPOSITION関数INSTR関数がありますが、これらの関数は検索開始位置を指定することはできず、常に一文字目から検索されます。

スポンサードリンク
Lではじまる 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)
スポンサードリンク

Lではじまる MySQL の関数

LCASE アルファベット大文字を小文字に変換する
LEAST 最小値を調べる
LEFT 文字列の左側から文字列を取り出す
LENGTH 文字列のバイト数を調べる
LOCATE 特定の文字列が最初に出現する位置を調べる
LOG 対数を求める
LOG10 10を底とした対数を求める
LOG2 2を底とした対数を求める
LOWER アルファベット大文字を小文字に変換する
LPAD 特定の文字を左側に追加して文字列の長さを整える
LTRIM 文字列の左側から半角スペースを削除する