sql >> Databáze >  >> RDS >> MariaDB

Jak FIELD() funguje v MariaDB

V MariaDB FIELD() je vestavěná řetězcová funkce, která vrací pozici indexu řetězce nebo čísla odpovídající zadanému vzoru.

Přijímá dva nebo více argumentů. První je vzor, ​​který chcete hledat. Všechny následující argumenty jsou řetězce nebo čísla, se kterými se má vzor porovnat.

Syntaxe

Syntaxe vypadá takto:

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

Kde pattern je vzor a str1[, str2,…] představuje řetězce nebo čísla.

Příklad

Zde je základní příklad:

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

Výsledek:

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

V tomto případě vzor (Green ) se vyskytuje na druhé pozici, a tedy 2 je vráceno.

Rozlišovat malá a velká písmena

FIELD() funkce zachází s řetězci bez ohledu na velikost písmen.

Příklad:

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

Výsledek:

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

Žádná shoda

Pokud neexistuje žádná shoda, 0 je vráceno.

Příklad:

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

Výsledek:

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

Čísla

Když jsou všechny argumenty čísla, jsou považovány za čísla. Jinak se s nimi zachází jako s dvojníky.

Příklad:

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

Výsledek:

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

Více shod

Pokud existuje více shod vzoru, vrátí se pouze index prvního:

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

Výsledek:

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

Určení vzoru Null

Poskytování null jako první argument je výsledkem 0 :

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

Výsledek:

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

Poskytování pouze jednoho řetězcového argumentu

Zadání jediného argumentu ke shodě je platné:

SELECT FIELD(205, 205);

Výsledek:

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

Jeden argument

Ale předání pouze jednoho argumentu do FIELD() vrátí chybu:

SELECT FIELD(205);

Výsledek:

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

Chybí argument

Volání FIELD() bez předání jakýchkoli argumentů dojde k chybě:

SELECT FIELD();

Výsledek:

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

  1. Zjednodušte vnořený příkaz case when

  2. Získejte záznamy, kde je klíč sloupce json null

  3. Jak zakázat spouštění v Oracle SQL Developer?

  4. Opakující se řádky na základě hodnoty sloupce v každém řádku