INSTR()
関数は、文字列内で最初に出現する部分文字列の位置を返します。基本的に、LOCATE()
の2つの引数の構文と同じことを行います。 関数はそうします(引数の順序が逆になっていることを除いて)。
構文
構文は次のようになります:
INSTR(str,substr)
str
検索する文字列であり、substr
は検索している部分文字列です。
例1-基本的な使用法
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
結果:
+--------+ | Result | +--------+ | 10 | +--------+
この場合、文字列dogs
位置10から開始します。
例2–大文字と小文字を区別しない
大文字と小文字は区別されません:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
結果:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
例3–部分一致
検索語が単語の一部のみを表しているかどうかは関係ありませんが、それでも一致します(結局のところ、文字列内の部分文字列を検索しているだけです):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
結果:
+--------+ | Result | +--------+ | 10 | +--------+
スペースはまだ文字列の一部です。したがって、必要に応じて最初のスペースを検索できます。
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
結果:
+--------+ | Result | +--------+ | 5 | +--------+
例4–最初の発生のみ
最初に出現した位置のみが返されることを忘れないでください:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
結果:
+--------+ | Result | +--------+ | 2 | +--------+
例5–部分文字列が見つからない場合
サブストリングが見つからない場合、0
の結果 返されます:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
結果:
+--------+ | Result | +--------+ | 0 | +--------+
例6–パラメータ数が正しくない
パラメータのいずれかを省略すると、エラーが発生します:
SELECT INSTR('Cats and dogs like to run') AS Result;
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
提供するパラメータが多すぎる場合にもエラーが発生します:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'