MariaDBでは、INSTR() は、別の文字列内で最初に出現する部分文字列の位置を返す組み込みの文字列関数です。
INSTR() LOCATE()に似ています 関数、ただしLOCATE() 検索の開始位置を指定するオプションを提供します。また、これら2つの関数の間では、引数の順序が逆になっています。
構文
構文は次のようになります:
INSTR(str,substr)
str 文字列、substr 検索する部分文字列です。
例
基本的な例は次のとおりです。
SELECT INSTR('The hot sun', 'hot'); 結果:
+-----------------------------+
| INSTR('The hot sun', 'hot') |
+-----------------------------+
| 5 |
+-----------------------------+ 大文字と小文字を区別しない
INSTR() 大文字と小文字を区別しない検索を実行します:
SELECT INSTR('The hot sun', 'HOT'); 結果:
+-----------------------------+
| INSTR('The hot sun', 'HOT') |
+-----------------------------+
| 5 |
+-----------------------------+ 複数回発生
サブストリングが複数回出現する場合は、最初のサブストリングの位置のみが返されます:
SELECT INSTR('The hot sun is really hot', 'hot'); 結果:
+-------------------------------------------+
| INSTR('The hot sun is really hot', 'hot') |
+-------------------------------------------+
| 5 |
+-------------------------------------------+> パーシャルマッチ
部分文字列がより大きな単語の一部である場合でも、一致します:
SELECT INSTR('The hottest sun', 'hot'); 結果:
+---------------------------------+
| INSTR('The hottest sun', 'hot') |
+---------------------------------+
| 5 |
+---------------------------------+ ただし、文字列が部分文字列の一部にすぎない場合は、一致しません:
SELECT INSTR('The hot sun', 'hottest'); 結果:
+---------------------------------+
| INSTR('The hot sun', 'hottest') |
+---------------------------------+
| 0 |
+---------------------------------+ スペース
スペース文字は引き続き文字列であるため、それが唯一の文字であっても、サブ文字列にスペースを含めることができます:
SELECT INSTR('The hot sun', ''); 結果:
+---------------------------+
| INSTR('The hot sun', ' ') |
+---------------------------+
| 4 |
+---------------------------+ 空の文字列
サブ文字列が空の文字列の場合は次のようになります。
SELECT INSTR('The hot sun', ''); 結果:
+--------------------------+
| INSTR('The hot sun', '') |
+--------------------------+
| 1 |
+--------------------------+ 一致なし
文字列に部分文字列が見つからない場合は、INSTR() 0を返します :
SELECT INSTR('The hot sun', 'cold'); 結果:
+------------------------------+
| INSTR('The hot sun', 'cold') |
+------------------------------+
| 0 |
+------------------------------+ ヌル引数
nullを提供する いずれの引数についても、結果はnullになります。 :
SELECT
INSTR('The hot sun', null),
INSTR(null, 'hot'); 結果:
+----------------------------+--------------------+
| INSTR('The hot sun', null) | INSTR(null, 'hot') |
+----------------------------+--------------------+
| NULL | NULL |
+----------------------------+--------------------+ 間違った数の引数を指定する
INSTR()の呼び出し 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT INSTR('hot'); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'