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'