No MariaDB,
FIELD() é uma função de string interna que retorna a posição de índice da string ou número que corresponde ao padrão especificado. Aceita dois ou mais argumentos. O primeiro é o padrão que você deseja pesquisar. Todos os argumentos subsequentes são as strings ou números para os quais corresponder ao padrão.
Sintaxe
A sintaxe fica assim:
FIELD(pattern, str1[,str2,...]) Onde
pattern é o padrão e str1[, str2,…] representa as strings ou números. Exemplo
Segue um exemplo básico:
SELECT FIELD('Green', 'Red', 'Green', 'Blue'); Resultado:
+----------------------------------------+
| FIELD('Green', 'Red', 'Green', 'Blue') |
+----------------------------------------+
| 2 |
+----------------------------------------+ Neste caso, o padrão (
Green ) ocorre na segunda posição e, portanto, 2 é devolvido. Sensibilidade de maiúsculas e minúsculas
O
FIELD() A função trata strings como não diferenciando maiúsculas de minúsculas. Exemplo:
SELECT FIELD('BLUE', 'Red', 'Green', 'Blue'); Resultado:
+---------------------------------------+
| FIELD('BLUE', 'Red', 'Green', 'Blue') |
+---------------------------------------+
| 3 |
+---------------------------------------+ Sem correspondência
Se não houver correspondência,
0 é devolvido. Exemplo:
SELECT FIELD('Go', 'Red', 'Green', 'Blue'); Resultado:
+-------------------------------------+
| FIELD('Go', 'Red', 'Green', 'Blue') |
+-------------------------------------+
| 0 |
+-------------------------------------+ Números
Quando todos os argumentos são números, eles são tratados como números. Caso contrário, eles são tratados como duplos.
Exemplo:
SELECT FIELD(3, 40, 2, 18, 10, 3); Resultado:
+----------------------------+ | FIELD(3, 40, 2, 18, 10, 3) | +----------------------------+ | 5 | +----------------------------+
Várias correspondências
Se houver várias correspondências do padrão, apenas o índice do primeiro será retornado:
SELECT FIELD(3, 40, 3, 18, 10, 3); Resultado:
+----------------------------+ | FIELD(3, 40, 3, 18, 10, 3) | +----------------------------+ | 2 | +----------------------------+
Especificando um padrão nulo
Fornecendo
null como o primeiro argumento resulta em 0 :SELECT FIELD(null, 1, 2, 3); Resultado:
+----------------------+ | FIELD(null, 1, 2, 3) | +----------------------+ | 0 | +----------------------+
Fornecendo apenas um argumento de string
Fornecer um único argumento para corresponder é válido:
SELECT FIELD(205, 205); Resultado:
+-----------------+ | FIELD(205, 205) | +-----------------+ | 1 | +-----------------+
Argumento único
Mas passando apenas um argumento para
FIELD() retorna um erro:SELECT FIELD(205); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'
Argumento ausente
Chamando
FIELD() sem passar nenhum argumento resulta em um erro:SELECT FIELD(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIELD'