sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer INSTR() i MariaDB

I MariaDB, INSTR() er en indbygget strengfunktion, der returnerer positionen for den første forekomst af en understreng i en anden streng.

INSTR() ligner LOCATE() funktion, bortset fra at LOCATE() giver mulighed for at angive en startposition for søgningen. Argumentrækkefølgen er også omvendt mellem disse to funktioner.

Syntaks

Syntaksen ser sådan ud:

INSTR(str,substr)

Hvor str er strengen, substr er den understreng, der skal findes.

Eksempel

Her er et grundlæggende eksempel:

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

Resultat:

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

Uafhængig af store og små bogstaver

INSTR() udfører en søgning uden store og små bogstaver:

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

Resultat:

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

Flere forekomster

Hvis understrengen forekommer mere end én gang, returneres kun positionen for den første:

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

Resultat:

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

Delvis match

Hvis understrengen er en del af et større ord, er det stadig et match:

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

Resultat:

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

Men hvis strengen kun er en del af understrengen, er den ikke et match:

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

Resultat:

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

Mellemrum

Mellemrumstegnet er stadig en streng, så vi kan inkludere mellemrum i understrengen, selvom det er det eneste tegn:

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

Resultat:

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

Tøm streng

Her er, hvad der sker, når understrengen er en tom streng:

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

Resultat:

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

Ingen match

Hvis understrengen ikke findes i strengen, INSTR() returnerer 0 :

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

Resultat:

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

Nul-argumenter

Giver null for ethvert af argumenterne resulterer i null :

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

Resultat:

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

Angivelse af det forkerte antal argumenter

Kalder INSTR() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT INSTR('hot');

Resultat:

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

  1. Ødelæggelse af en Postgres DB på Heroku

  2. stop ved kompileringsfejl i et sqlplus-script

  3. Hvad er grunden / nytten er at bruge ENABLE nøgleord i oracle database statements

  4. PostgreSQL og TimescaleDB backup gendannelse ved hjælp af ClusterControl CLI