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'