W MariaDB, INSTR() jest wbudowaną funkcją ciągu, która zwraca pozycję pierwszego wystąpienia podciągu w innym ciągu.
INSTR() jest podobny do LOCATE() funkcja, z wyjątkiem tego, że LOCATE() udostępnia opcję określenia pozycji początkowej wyszukiwania. Również kolejność argumentów jest odwrócona między tymi dwiema funkcjami.
Składnia
Składnia wygląda tak:
INSTR(str,substr)
Gdzie str jest ciągiem, substr jest podciągiem do znalezienia.
Przykład
Oto podstawowy przykład:
SELECT INSTR('The hot sun', 'hot'); Wynik:
+-----------------------------+
| INSTR('The hot sun', 'hot') |
+-----------------------------+
| 5 |
+-----------------------------+ Nie uwzględnia wielkości liter
INSTR() wykonuje wyszukiwanie bez uwzględniania wielkości liter:
SELECT INSTR('The hot sun', 'HOT'); Wynik:
+-----------------------------+
| INSTR('The hot sun', 'HOT') |
+-----------------------------+
| 5 |
+-----------------------------+ Wiele wystąpień
Jeśli podciąg występuje więcej niż raz, zwracana jest tylko pozycja pierwszego:
SELECT INSTR('The hot sun is really hot', 'hot'); Wynik:
+-------------------------------------------+
| INSTR('The hot sun is really hot', 'hot') |
+-------------------------------------------+
| 5 |
+-------------------------------------------+ Dopasowanie częściowe
Jeśli podciąg jest częścią większego słowa, nadal jest zgodny:
SELECT INSTR('The hottest sun', 'hot'); Wynik:
+---------------------------------+
| INSTR('The hottest sun', 'hot') |
+---------------------------------+
| 5 |
+---------------------------------+ Ale jeśli ciąg jest tylko częścią podciągu, nie jest to dopasowanie:
SELECT INSTR('The hot sun', 'hottest'); Wynik:
+---------------------------------+
| INSTR('The hot sun', 'hottest') |
+---------------------------------+
| 0 |
+---------------------------------+ Przestrzenie
Znak spacji nadal jest ciągiem, więc możemy w podłańcuch umieszczać spacje, nawet jeśli jest to jedyny znak:
SELECT INSTR('The hot sun', ' '); Wynik:
+---------------------------+
| INSTR('The hot sun', ' ') |
+---------------------------+
| 4 |
+---------------------------+ Pusty ciąg
Oto, co się dzieje, gdy podciąg jest pustym ciągiem:
SELECT INSTR('The hot sun', ''); Wynik:
+--------------------------+
| INSTR('The hot sun', '') |
+--------------------------+
| 1 |
+--------------------------+ Brak dopasowania
Jeśli podciąg nie zostanie znaleziony w ciągu, INSTR() zwraca 0 :
SELECT INSTR('The hot sun', 'cold'); Wynik:
+------------------------------+
| INSTR('The hot sun', 'cold') |
+------------------------------+
| 0 |
+------------------------------+ Argumenty zerowe
Podanie null dla dowolnego z argumentów daje wynik null :
SELECT
INSTR('The hot sun', null),
INSTR(null, 'hot'); Wynik:
+----------------------------+--------------------+
| INSTR('The hot sun', null) | INSTR(null, 'hot') |
+----------------------------+--------------------+
| NULL | NULL |
+----------------------------+--------------------+ Podanie niewłaściwej liczby argumentów
Wywołanie INSTR() z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:
SELECT INSTR('hot'); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'