sql >> Database >  >> RDS >> MariaDB

Hoe FIELD() werkt in MariaDB

In MariaDB, FIELD() is een ingebouwde tekenreeksfunctie die de indexpositie retourneert van de tekenreeks of het nummer dat overeenkomt met het opgegeven patroon.

Het accepteert twee of meer argumenten. De eerste is het patroon waarnaar u wilt zoeken. Alle volgende argumenten zijn de tekenreeksen of getallen waarmee het patroon overeenkomt.

Syntaxis

De syntaxis gaat als volgt:

FIELD(pattern, str1[,str2,...])

Waar pattern is het patroon, en str1[, str2,…] staat voor de tekenreeksen of cijfers.

Voorbeeld

Hier is een eenvoudig voorbeeld:

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

Resultaat:

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

In dit geval is het patroon (Green ) komt voor op de tweede positie, en dus 2 wordt geretourneerd.

Hoofdlettergevoeligheid

Het FIELD() functie behandelt tekenreeksen als niet-hoofdlettergevoelig.

Voorbeeld:

SELECT FIELD('BLUE', 'Red', 'Green', 'Blue');

Resultaat:

+---------------------------------------+
| FIELD('BLUE', 'Red', 'Green', 'Blue') |
+---------------------------------------+
|                                     3 |
+---------------------------------------+

Geen overeenkomst

Als er geen overeenkomst is, 0 wordt geretourneerd.

Voorbeeld:

SELECT FIELD('Go', 'Red', 'Green', 'Blue');

Resultaat:

+-------------------------------------+
| FIELD('Go', 'Red', 'Green', 'Blue') |
+-------------------------------------+
|                                   0 |
+-------------------------------------+

Cijfers

Als alle argumenten getallen zijn, worden ze als getallen behandeld. Anders worden ze als dubbel behandeld.

Voorbeeld:

SELECT FIELD(3, 40, 2, 18, 10, 3);

Resultaat:

+----------------------------+
| FIELD(3, 40, 2, 18, 10, 3) |
+----------------------------+
|                          5 |
+----------------------------+

Meerdere wedstrijden

Als er meerdere overeenkomsten zijn met het patroon, wordt alleen de index van de eerste geretourneerd:

SELECT FIELD(3, 40, 3, 18, 10, 3);

Resultaat:

+----------------------------+
| FIELD(3, 40, 3, 18, 10, 3) |
+----------------------------+
|                          2 |
+----------------------------+

Een nulpatroon specificeren

null opgeven aangezien het eerste argument resulteert in 0 :

SELECT FIELD(null, 1, 2, 3);

Resultaat:

+----------------------+
| FIELD(null, 1, 2, 3) |
+----------------------+
|                    0 |
+----------------------+

Slechts één stringargument geven

Het opgeven van één enkel argument om overeen te komen is geldig:

SELECT FIELD(205, 205);

Resultaat:

+-----------------+
| FIELD(205, 205) |
+-----------------+
|               1 |
+-----------------+

Enkel argument

Maar slechts één argument doorgeven aan FIELD() geeft een fout:

SELECT FIELD(205);

Resultaat:

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

Ontbrekend argument

FIELD() . aanroepen zonder het doorgeven van argumenten resulteert in een fout:

SELECT FIELD();

Resultaat:

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

  1. Hoe MySQL te beveiligen:deel twee

  2. listagg-gegevens naar bruikbaar formaat?

  3. Oracle 10g accepteert een 5-cijferig jaar in een datum

  4. Mountain Lion Postgres kon geen verbinding maken