sql >> Databáze >  >> RDS >> MariaDB

Jak INSTR() funguje v MariaDB

V MariaDB, INSTR() je vestavěná řetězcová funkce, která vrací pozici prvního výskytu podřetězce v jiném řetězci.

INSTR() je podobný LOCATE() funkce, kromě LOCATE() poskytuje možnost zadat počáteční pozici pro vyhledávání. Také pořadí argumentů je mezi těmito dvěma funkcemi obrácené.

Syntaxe

Syntaxe vypadá takto:

INSTR(str,substr)

Kde str je řetězec, substr je podřetězec, který se má najít.

Příklad

Zde je základní příklad:

SELECT INSTR('The hot sun', 'hot');

Výsledek:

+-----------------------------+
| INSTR('The hot sun', 'hot') |
+-----------------------------+
|                           5 |
+-----------------------------+

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

INSTR() provede vyhledávání bez rozlišení velkých a malých písmen:

SELECT INSTR('The hot sun', 'HOT');

Výsledek:

+-----------------------------+
| INSTR('The hot sun', 'HOT') |
+-----------------------------+
|                           5 |
+-----------------------------+

Více výskytů

Pokud se podřetězec vyskytuje více než jednou, vrátí se pouze pozice prvního z nich:

SELECT INSTR('The hot sun is really hot', 'hot');

Výsledek:

+-------------------------------------------+
| INSTR('The hot sun is really hot', 'hot') |
+-------------------------------------------+
|                                         5 |
+-------------------------------------------+

Částečná shoda

Pokud je podřetězec součástí většího slova, stále se jedná o shodu:

SELECT INSTR('The hottest sun', 'hot');

Výsledek:

+---------------------------------+
| INSTR('The hottest sun', 'hot') |
+---------------------------------+
|                               5 |
+---------------------------------+

Ale pokud je řetězec pouze částí podřetězce, nejde o shodu:

SELECT INSTR('The hot sun', 'hottest');

Výsledek:

+---------------------------------+
| INSTR('The hot sun', 'hottest') |
+---------------------------------+
|                               0 |
+---------------------------------+

Mezery

Znak mezery je stále řetězec, takže do podřetězce můžeme zahrnout mezery, i když je to jediný znak:

SELECT INSTR('The hot sun', ' ');

Výsledek:

+---------------------------+
| INSTR('The hot sun', ' ') |
+---------------------------+
|                         4 |
+---------------------------+

Prázdný řetězec

Co se stane, když je podřetězec prázdný řetězec:

SELECT INSTR('The hot sun', '');

Výsledek:

+--------------------------+
| INSTR('The hot sun', '') |
+--------------------------+
|                        1 |
+--------------------------+

Žádná shoda

Pokud podřetězec v řetězci není nalezen, INSTR() vrátí 0 :

SELECT INSTR('The hot sun', 'cold');

Výsledek:

+------------------------------+
| INSTR('The hot sun', 'cold') |
+------------------------------+
|                            0 |
+------------------------------+

Nulové argumenty

Poskytování null pro kterýkoli z argumentů je výsledkem null :

SELECT 
    INSTR('The hot sun', null),
    INSTR(null, 'hot');

Výsledek:

+----------------------------+--------------------+
| INSTR('The hot sun', null) | INSTR(null, 'hot') |
+----------------------------+--------------------+
|                       NULL |               NULL |
+----------------------------+--------------------+

Uvedení nesprávného počtu argumentů

Volání INSTR() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT INSTR('hot');

Výsledek:

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

  1. Jak vypsat aktivní / otevřená připojení v Oracle?

  2. Jak mohu vytvořit omezení pro kontrolu, zda je e-mail platný v postgresu?

  3. Spouštěče SQL Server – Část 2 Spouštěče DDL &LOGON

  4. EF4 - Vybraná uložená procedura nevrací žádné sloupce