In MariaDB, FIELD() è una funzione stringa incorporata che restituisce la posizione dell'indice della stringa o del numero che corrisponde al modello specificato.
Accetta due o più argomenti. Il primo è il modello che vuoi cercare. Tutti gli argomenti successivi sono le stringhe oi numeri per i quali confrontare il modello.
Sintassi
La sintassi è questa:
FIELD(pattern, str1[,str2,...])
Dove pattern è il modello e str1[, str2,…] rappresenta le stringhe o i numeri.
Esempio
Ecco un esempio di base:
SELECT FIELD('Green', 'Red', 'Green', 'Blue'); Risultato:
+----------------------------------------+
| FIELD('Green', 'Red', 'Green', 'Blue') |
+----------------------------------------+
| 2 |
+----------------------------------------+
In questo caso, il pattern (Green ) compare nella seconda posizione, quindi 2 viene restituito.
Maiuscole/minuscole
Il FIELD() la funzione considera le stringhe senza distinzione tra maiuscole e minuscole.
Esempio:
SELECT FIELD('BLUE', 'Red', 'Green', 'Blue'); Risultato:
+---------------------------------------+
| FIELD('BLUE', 'Red', 'Green', 'Blue') |
+---------------------------------------+
| 3 |
+---------------------------------------+ Nessuna corrispondenza
Se non c'è corrispondenza, 0 viene restituito.
Esempio:
SELECT FIELD('Go', 'Red', 'Green', 'Blue'); Risultato:
+-------------------------------------+
| FIELD('Go', 'Red', 'Green', 'Blue') |
+-------------------------------------+
| 0 |
+-------------------------------------+ Numeri
Quando tutti gli argomenti sono numeri, vengono trattati come numeri. Altrimenti vengono trattati come doppi.
Esempio:
SELECT FIELD(3, 40, 2, 18, 10, 3); Risultato:
+----------------------------+ | FIELD(3, 40, 2, 18, 10, 3) | +----------------------------+ | 5 | +----------------------------+
Partite multiple
Se sono presenti più corrispondenze del pattern, viene restituito solo l'indice del primo:
SELECT FIELD(3, 40, 3, 18, 10, 3); Risultato:
+----------------------------+ | FIELD(3, 40, 3, 18, 10, 3) | +----------------------------+ | 2 | +----------------------------+
Specifica di un modello nullo
Fornendo null poiché il primo argomento risulta in 0 :
SELECT FIELD(null, 1, 2, 3); Risultato:
+----------------------+ | FIELD(null, 1, 2, 3) | +----------------------+ | 0 | +----------------------+
Fornire un solo argomento di stringa
È valido fornire un singolo argomento per la corrispondenza:
SELECT FIELD(205, 205); Risultato:
+-----------------+ | FIELD(205, 205) | +-----------------+ | 1 | +-----------------+
Singolo argomento
Ma passando un solo argomento a FIELD() restituisce un errore:
SELECT FIELD(205); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'
Argomento mancante
Chiamando FIELD() senza passare alcun argomento genera un errore:
SELECT FIELD(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'