SQL道場 文字列関数 INSTR関数

SQLで文字列内に含まれる文字列を検索するINSTR関数について記載しています。

対応データベースMySQL Oracle Access

INSTR関数の文法

SELECT INSTR(検索対象の文字列,検索する文字列,検索開始位置,検出序数) FROM テーブル
SELECT INSTR(検索対象の文字列,検索する文字列) FROM テーブル
引数検索する文字列文字列型
検索対象の文字列文字列型
検索開始位置数値型
検出序数数値型
返値数値型 検索する文字列が見つかった場合はその位置が、見つからなかった場合は0が戻ります。

INSTR関数は検索対象の文字列内に含まれる文字列を検索します。検索する文字列が見つかった場合はその位置が、見つからなかった場合は0が戻ります。文字列検索の開始位置を指定した場合は、その位置から検索し、省略した場合は先頭から検索します。また、MySQL関数はマルチバイトセーフであり、1 つ以上の引数がバイナリ文字列である場合にのみ大文字と小文字が区別されます。

Oracleでは検索開始位置にマイナスの値を指定すると最後から逆向きに検索します。また、Oracleでは検出序数に何番目に見つかった文字列を検索するか指定することができます。

実行例

MySQLの実行例

/* MySQL 文字列内に検索する文字列が見つかった位置を求めるサンプル */
SELECT STR,INSTR(STR,'計画') FROM testdb.WORK;
INSTR関数サンプル実行結果