sql >> Databáze >  >> RDS >> Mysql

Jak funguje funkce INSTR() v MySQL

INSTR() Funkce vrací pozici prvního výskytu podřetězce v řetězci. V podstatě dělá to samé, co syntaxe dvou argumentů LOCATE() funkce ano (kromě toho, že pořadí argumentů je obrácené).

Syntaxe

Syntaxe vypadá takto:

INSTR(str,substr)

Kde str je řetězec, který chcete hledat, a substr je podřetězec, který hledáte.

Příklad 1 – Základní použití

SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;

Výsledek:

+--------+
| Result |
+--------+
|     10 |
+--------+

V tomto případě řetězec dogs začíná na pozici 10.

Příklad 2 – nerozlišují se malá a velká písmena

Nerozlišují se malá a velká písmena:

SELECT 
  INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1',
  INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';

Výsledek:

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|       10 |       10 |
+----------+----------+

Příklad 3 – Částečná shoda

Nezáleží na tom, zda váš hledaný výraz představuje pouze část slova, přesto se bude shodovat (koneckonců jednoduše hledáte podřetězec v řetězci):

SELECT INSTR('Cats and dogs like to run', 'do') AS Result;

Výsledek:

+--------+
| Result |
+--------+
|     10 |
+--------+

Mezera je stále součástí řetězce. Takže můžete vyhledat první mezeru, pokud potřebujete:

SELECT INSTR('Cats and dogs like to run', ' ') AS Result;

Výsledek:

+--------+
| Result |
+--------+
|      5 |
+--------+

Příklad 4 – Pouze první výskyt

Pamatujte, že je vrácena pouze pozice prvního výskytu:

SELECT INSTR('Cats and dogs like to run', 'a') AS Result;

Výsledek:

+--------+
| Result |
+--------+
|      2 |
+--------+

Příklad 5 – Když podřetězec nelze najít

Pokud podřetězec není nalezen, výsledek 0 je vráceno:

SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;

Výsledek:

+--------+
| Result |
+--------+
|      0 |
+--------+

Příklad 6 – Nesprávný počet parametrů

Pokud některý z parametrů vynecháte, zobrazí se chyba:

SELECT INSTR('Cats and dogs like to run') AS Result;

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'

Chyba se také zobrazí, pokud zadáte příliš mnoho parametrů:

SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'

  1. Jak vytvořit ADDM úlohu a zkontrolovat její sestavu

  2. Operátoři sady Oracle

  3. Povolit hodnotu null v jedinečném sloupci

  4. ORA-12505, TNS:listener aktuálně nezná SID uvedené v connect des