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

Como COERCIBILITY() funciona no MariaDB


No MariaDB, COERCIBILITY() é uma função do sistema que retorna o valor de coercibilidade de agrupamento de seu argumento de string.

Ele define como os agrupamentos serão convertidos em caso de conflito de agrupamento. Nesses conflitos, uma expressão com maior coercibilidade é convertida no agrupamento de uma expressão com menor coercibilidade.

Sintaxe


A sintaxe fica assim:
COERCIBILITY(str)

Onde str é a expressão para a qual você gostaria de obter a coercibilidade.

A COERCIBILITY() função retorna um valor entre 0 e 5 , conforme descrito na tabela a seguir:
Coercibilidade Descrição Exemplo
0 Explícito Valor usando um COLLATE cláusula
1 Sem agrupamento Strings concatenadas usando agrupamentos diferentes
2 Implícito Valor da coluna
3 Constante O valor de retorno de funções como USER() , VERSION() , etc
4 Coercível String literal
5 Ignorável NULL ou derivado de NULL

Exemplo


Segue um exemplo para demonstrar:
SELECT COERCIBILITY('Green');

Resultado:
+-----------------------+
| COERCIBILITY('Green') |
+-----------------------+
|                     4 |
+-----------------------+

Esta é uma string normal e, portanto, a coercibilidade é 4 .

Agrupamento explícito


Aqui está um exemplo de especificação explícita do agrupamento com o COLLATE cláusula.:
SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);

Resultado:
+-----------------------------------------------+
| COERCIBILITY('Mango' COLLATE utf8_spanish_ci) |
+-----------------------------------------------+
|                                             0 |
+-----------------------------------------------+

Isso retorna 0 porque eu especifiquei explicitamente o agrupamento com o COLLATE cláusula.

Coluna do banco de dados


Neste exemplo, eu retorno dados de uma coluna do banco de dados.:
SELECT 
    PetName,
    COERCIBILITY(PetName)
FROM Pets
LIMIT 1;

Resultado:
+---------+-----------------------+
| PetName | COERCIBILITY(PetName) |
+---------+-----------------------+
| Fluffy  |                     2 |
+---------+-----------------------+

O fato de ser uma coluna de banco de dados significa que é um agrupamento implícito e, portanto, obtemos uma coercibilidade de 2 .

Constantes


Neste exemplo, recebo a coercibilidade do valor de retorno do VERSION() embutido função:
SELECT COERCIBILITY(VERSION());

Resultado:
+-------------------------+
| COERCIBILITY(VERSION()) |
+-------------------------+
|                       3 |
+-------------------------+

Valores nulos


Veja o que acontece quando passamos null :
SELECT COERCIBILITY(null);

Resultado:
+--------------------+
| COERCIBILITY(null) |
+--------------------+
|                  6 |
+--------------------+

Os valores nulos são ignoráveis ​​e, portanto, obtemos uma coercibilidade de 6 .

Sem argumentos


Chamando COERCIBILITY() sem nenhum argumento resulta em um erro:
SELECT COERCIBILITY();

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