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'