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

Sådan fungerer FIND_IN_SET() i MariaDB

I MariaDB, FIND_IN_SET() er en indbygget strengfunktion, der returnerer indekspositionen, hvor det givne mønster forekommer i den angivne strengliste.

Den accepterer to argumenter. Det første er det mønster, du vil søge efter. Det andet argument er en streng, der indeholder kommaseparerede værdier, som mønsteret skal matches med.

Syntaks

Syntaksen ser sådan ud:

FIND_IN_SET(pattern, strlist)

Hvor pattern er det mønster, du vil søge efter, og strlist repræsenterer strengen af ​​kommaseparerede værdier, der skal søges i.

Eksempel

Her er et grundlæggende eksempel:

SELECT FIND_IN_SET('Green', 'Red,Green,Blue');

Resultat:

+----------------------------------------+
| FIND_IN_SET('Green', 'Red,Green,Blue') |
+----------------------------------------+
|                                      2 |
+----------------------------------------+

I dette tilfælde er mønsteret (Green ) forekommer på den anden position, og så 2 er returneret.

Ingen match

Hvis der ikke er noget match, 0 er returneret.

Eksempel:

SELECT FIND_IN_SET('Nope', 'Red,Green,Blue');

Resultat:

+---------------------------------------+
| FIND_IN_SET('Nope', 'Red,Green,Blue') |
+---------------------------------------+
|                                     0 |
+---------------------------------------+

Flere match

Hvis der er flere matches, returneres kun indekset for det første:

SELECT FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat');

Resultat:

+-------------------------------------------+
| FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat') |
+-------------------------------------------+
|                                         2 |
+-------------------------------------------+

Angivelse af et nulmønster

Giver null da det første argument resulterer i null bliver returneret:

SELECT FIND_IN_SET(null, 'Cat,Dog,Cat');

Resultat:

+----------------------------------+
| FIND_IN_SET(null, 'Cat,Dog,Cat') |
+----------------------------------+
|                             NULL |
+----------------------------------+

Angivelse af en nulstrengliste

Giver null da det andet argument også resulterer i null :

SELECT FIND_IN_SET('Dog', null);

Resultat:

+--------------------------+
| FIND_IN_SET('Dog', null) |
+--------------------------+
|                     NULL |
+--------------------------+

Tøm strengliste

Hvis strenglisten er tom, FIND_IN_SET() returnerer 0 :

SELECT FIND_IN_SET('Dog', '');

Resultat:

+------------------------+
| FIND_IN_SET('Dog', '') |
+------------------------+
|                      0 |
+------------------------+

Komma i mønsteret

FIND_IN_SET() returnerer ikke det korrekte resultat, hvis mønsteret indeholder et komma:

SELECT FIND_IN_SET('Green,', 'Red,Green,Blue');

Resultat:

+-----------------------------------------+
| FIND_IN_SET('Green,', 'Red,Green,Blue') |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+

Enkelt argument

Sender kun ét argument til FIND_IN_SET() returnerer en fejl:

SELECT FIND_IN_SET('Cat');

Resultat:

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

Manglende argument

Kalder FIND_IN_SET() uden at sende nogen argumenter resulterer det i en fejl:

SELECT FIND_IN_SET();

Resultat:

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

  1. FROM_DAYS() Eksempler – MySQL

  2. Sådan vedligeholdes rækkefølgen af ​​indsættelse i SQL Server

  3. Knee-Jerk Vent-statistikker:PAGELATCH

  4. Hvordan tæller man dage undtagen søndage mellem to datoer i Postgres?