MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como FIELD() funciona no MariaDB


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'