sql >> Databasteknik >  >> RDS >> MariaDB

Hur INSTR() fungerar i MariaDB

I MariaDB, INSTR() är en inbyggd strängfunktion som returnerar positionen för den första förekomsten av en delsträng i en annan sträng.

INSTR() liknar LOCATE() funktion, förutom att LOCATE() ger möjlighet att ange en startposition för sökningen. Argumentordningen är också omvänd mellan dessa två funktioner.

Syntax

Syntaxen ser ut så här:

INSTR(str,substr)

Där str är strängen, substr är delsträngen att hitta.

Exempel

Här är ett grundläggande exempel:

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

Resultat:

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

Inte skiftlägeskänslig

INSTR() utför en skiftlägesokänslig sökning:

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

Resultat:

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

Flera förekomster

Om delsträngen förekommer mer än en gång, returneras endast positionen för den första:

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

Resultat:

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

Delvis matchning

Om delsträngen är en del av ett större ord, är det fortfarande en matchning:

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

Resultat:

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

Men om strängen bara är en del av understrängen är den inte en matchning:

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

Resultat:

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

Spaces

Mellanslagstecknet är fortfarande en sträng, så vi kan inkludera mellanslag i understrängen, även om det är det enda tecknet:

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

Resultat:

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

Töm sträng

Så här händer när delsträngen är en tom sträng:

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

Resultat:

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

Ingen match

Om delsträngen inte hittas i strängen, INSTR() returnerar 0 :

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

Resultat:

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

Nollargument

Tillhandahåller null för något av argumenten resulterar i null :

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

Resultat:

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

Ange fel antal argument

Anropar INSTR() med fel antal argument, eller utan att skicka några argument resulterar i ett fel:

SELECT INSTR('hot');

Resultat:

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

  1. Hur man väljer ett kolumnnamn med ett mellanslag i MySQL

  2. Django cache.set() orsakar dubblettnyckelfel

  3. Hur man konverterar tidsstämpel med millisekunder till datum i Oracle

  4. Lösning för ORA-00997:olaglig användning av LONG datatyp