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;