In MariaDB, FIND_IN_SET() is een ingebouwde tekenreeksfunctie die de indexpositie retourneert waar het gegeven patroon voorkomt in de opgegeven tekenreekslijst.
Het aanvaardt twee argumenten. De eerste is het patroon waarnaar u wilt zoeken. Het tweede argument is een string die door komma's gescheiden waarden bevat waarmee het patroon overeenkomt.
Syntaxis
De syntaxis gaat als volgt:
FIND_IN_SET(pattern, strlist)
Waar pattern is het patroon waarnaar u wilt zoeken, en strlist vertegenwoordigt de reeks door komma's gescheiden waarden om te zoeken.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT FIND_IN_SET('Green', 'Red,Green,Blue'); Resultaat:
+----------------------------------------+
| FIND_IN_SET('Green', 'Red,Green,Blue') |
+----------------------------------------+
| 2 |
+----------------------------------------+
In dit geval is het patroon (Green ) komt voor op de tweede positie, en dus 2 wordt geretourneerd.
Geen overeenkomst
Als er geen overeenkomst is, 0 wordt geretourneerd.
Voorbeeld:
SELECT FIND_IN_SET('Nope', 'Red,Green,Blue'); Resultaat:
+---------------------------------------+
| FIND_IN_SET('Nope', 'Red,Green,Blue') |
+---------------------------------------+
| 0 |
+---------------------------------------+ Meerdere wedstrijden
Als er meerdere overeenkomsten zijn, wordt alleen de index van de eerste geretourneerd:
SELECT FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat'); Resultaat:
+-------------------------------------------+
| FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat') |
+-------------------------------------------+
| 2 |
+-------------------------------------------+ Een nulpatroon specificeren
null opgeven aangezien het eerste argument resulteert in null wordt geretourneerd:
SELECT FIND_IN_SET(null, 'Cat,Dog,Cat'); Resultaat:
+----------------------------------+ | FIND_IN_SET(null, 'Cat,Dog,Cat') | +----------------------------------+ | NULL | +----------------------------------+
Een Null String-lijst specificeren
null opgeven aangezien het tweede argument ook resulteert in null :
SELECT FIND_IN_SET('Dog', null); Resultaat:
+--------------------------+
| FIND_IN_SET('Dog', null) |
+--------------------------+
| NULL |
+--------------------------+ Lege tekenreekslijst
Als de tekenreekslijst leeg is, FIND_IN_SET() retourneert 0 :
SELECT FIND_IN_SET('Dog', ''); Resultaat:
+------------------------+
| FIND_IN_SET('Dog', '') |
+------------------------+
| 0 |
+------------------------+ Komma in het patroon
FIND_IN_SET() geeft niet het juiste resultaat als het patroon een komma bevat:
SELECT FIND_IN_SET('Green,', 'Red,Green,Blue'); Resultaat:
+-----------------------------------------+
| FIND_IN_SET('Green,', 'Red,Green,Blue') |
+-----------------------------------------+
| 0 |
+-----------------------------------------+ Enkel argument
Slechts één argument doorgeven aan FIND_IN_SET() geeft een fout:
SELECT FIND_IN_SET('Cat'); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'
Ontbrekend argument
Aanroepen van FIND_IN_SET() zonder het doorgeven van argumenten resulteert in een fout:
SELECT FIND_IN_SET(); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'