sql >> Databasteknik >  >> RDS >> MariaDB

Hur FIELD() fungerar i MariaDB

I MariaDB, FIELD() är en inbyggd strängfunktion som returnerar indexpositionen för strängen eller numret som matchar det angivna mönstret.

Den accepterar två eller flera argument. Det första är mönstret du vill söka efter. Alla efterföljande argument är de strängar eller siffror som mönstret ska matcha mot.

Syntax

Syntaxen ser ut så här:

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

Där pattern är mönstret och str1[, str2,…] representerar strängarna eller siffrorna.

Exempel

Här är ett grundläggande exempel:

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

Resultat:

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

I det här fallet, mönstret (Green ) förekommer vid den andra positionen, och så 2 returneras.

Skaftkänslighet

FIELD() funktion behandlar strängar som skiftlägesokänsliga.

Exempel:

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

Resultat:

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

Ingen match

Om det inte finns någon matchning, 0 returneras.

Exempel:

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

Resultat:

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

Siffror

När alla argument är tal, behandlas de som tal. Annars behandlas de som dubbelgångar.

Exempel:

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

Resultat:

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

Flera matchningar

Om det finns flera matchningar av mönstret, returneras endast indexet för det första:

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

Resultat:

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

Ange ett nollmönster

Tillhandahåller null eftersom det första argumentet resulterar i 0 :

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

Resultat:

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

Ge bara ett strängargument

Att ange ett enda argument för att matcha är giltigt:

SELECT FIELD(205, 205);

Resultat:

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

Enstaka argument

Men skickar bara ett argument till FIELD() returnerar ett fel:

SELECT FIELD(205);

Resultat:

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

Argument saknas

Anropar FIELD() utan att skicka några argument resulterar i ett fel:

SELECT FIELD();

Resultat:

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

  1. Importera .sql-fil på Windows till postgresql

  2. MySQL Ändra användarlösenord

  3. SQL Server Service Broker konversationsgrupper

  4. Anropa en set-returnerande funktion med ett arrayargument flera gånger