sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona COERCIBILITY() en MariaDB

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'