En MariaDB, COERCIBILITY()
es una función del sistema que devuelve el valor de coercibilidad de intercalación de su argumento de cadena.
Define cómo se convertirán las intercalaciones en caso de conflicto de intercalación. En tales conflictos, una expresión con mayor coercibilidad se convierte en la recopilación de una expresión con menor coercibilidad.
Sintaxis
La sintaxis es así:
COERCIBILITY(str)
Donde str
es la expresión para la que le gustaría obtener la coercibilidad.
La COERCIBILITY()
la función devuelve un valor entre 0
y 5
, como se indica en la siguiente tabla:
Coercibilidad | Descripción | Ejemplo |
---|---|---|
0 | Explícito | Valor usando un COLLATE cláusula |
1 | Sin intercalación | Cadenas concatenadas utilizando diferentes intercalaciones |
2 | Implícito | Valor de columna |
3 | Constante | El valor de retorno de funciones como USER() , VERSION() , etc. |
4 | Coercible | Cadena literal |
5 | Ignorables | NULL o derivado de NULL |
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT COERCIBILITY('Green');
Resultado:
+-----------------------+ | COERCIBILITY('Green') | +-----------------------+ | 4 | +-----------------------+
Esta es una cadena normal, por lo que la coercibilidad es 4
.
Recopilación explícita
Aquí hay un ejemplo de cómo especificar explícitamente la intercalación con COLLATE
cláusula.:
SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);
Resultado:
+-----------------------------------------------+ | COERCIBILITY('Mango' COLLATE utf8_spanish_ci) | +-----------------------------------------------+ | 0 | +-----------------------------------------------+
Esto devuelve 0
porque especifiqué explícitamente la intercalación con COLLATE
cláusula.
Columna de base de datos
En este ejemplo, devuelvo datos de una columna de base de datos.:
SELECT
PetName,
COERCIBILITY(PetName)
FROM Pets
LIMIT 1;
Resultado:
+---------+-----------------------+ | PetName | COERCIBILITY(PetName) | +---------+-----------------------+ | Fluffy | 2 | +---------+-----------------------+
El hecho de que sea una columna de base de datos significa que es una intercalación implícita y, por lo tanto, obtenemos una coercibilidad de 2
.
Constantes
En este ejemplo, obtengo la coercibilidad del valor de retorno del VERSION()
incorporado función:
SELECT COERCIBILITY(VERSION());
Resultado:
+-------------------------+ | COERCIBILITY(VERSION()) | +-------------------------+ | 3 | +-------------------------+
Valores nulos
Esto es lo que sucede cuando pasamos null
:
SELECT COERCIBILITY(null);
Resultado:
+--------------------+ | COERCIBILITY(null) | +--------------------+ | 6 | +--------------------+
Los valores nulos son ignorables, por lo que obtenemos una coercibilidad de 6
.
Sin Argumentos
Llamando a COERCIBILITY()
sin ningún argumento da como resultado un error:
SELECT COERCIBILITY();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'COERCIBILITY'