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'