sql >> Databáze >  >> RDS >> MariaDB

Jak COERCIBILITY() funguje v MariaDB

V MariaDB, COERCIBILITY() je systémová funkce, která vrací hodnotu koercibility řazení svého argumentu řetězce.

Definuje, jak budou kolace převedeny v případě konfliktu řazení. V takových konfliktech je výraz s vyšší koercibilitou převeden na kompilaci výrazu s nižší koercibilitou.

Syntaxe

Syntaxe vypadá takto:

COERCIBILITY(str)

Kde str je výraz, pro který byste rádi získali koercibilitu.

COERCIBILITY() funkce vrací hodnotu mezi 0 a 5 , jak je uvedeno v následující tabulce:

Koercibilita Popis Příklad
0 Explicitní Hodnota pomocí COLLATE doložka
1 Žádné řazení Zřetězené řetězce pomocí různých řazení
2 Implicitní Hodnota sloupce
3 Konstantní Vrácená hodnota z funkcí jako USER() , VERSION() , atd
4 Koercibilní Doslovný řetězec
5 Ignorovatelné NULL nebo odvozené z NULL

Příklad

Zde je příklad k demonstraci:

SELECT COERCIBILITY('Green');

Výsledek:

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

Toto je normální řetězec, takže koercibilita je 4 .

Explicitní řazení

Zde je příklad explicitního zadání řazení pomocí COLLATE klauzule.:

SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);

Výsledek:

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

To vrátí 0 protože jsem explicitně specifikoval řazení pomocí COLLATE doložka.

Sloupec databáze

V tomto příkladu vracím data ze sloupce databáze.:

SELECT 
    PetName,
    COERCIBILITY(PetName)
FROM Pets
LIMIT 1;

Výsledek:

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

Skutečnost, že se jedná o databázový sloupec, znamená, že jde o implicitní řazení, a proto dostáváme koercibilitu 2 .

Konstanty

V tomto příkladu získám koercibilitu návratové hodnoty z vestavěné VERSION() funkce:

SELECT COERCIBILITY(VERSION());

Výsledek:

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

Nulové hodnoty

Zde je to, co se stane, když předáme null :

SELECT COERCIBILITY(null);

Výsledek:

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

Hodnoty Null jsou ignorovatelné, a tak dostaneme koercibilitu 6 .

Žádné argumenty

Volání COERCIBILITY() bez jakýchkoli argumentů vede k chybě:

SELECT COERCIBILITY();

Výsledek:

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

  1. Převeďte varchar na datetime v SQL Server

  2. Jak najít všechna porušení omezení v databázi SQL Server

  3. Jak implementovat dávkové načítání pomocí Fluent NHibernate při práci s Oracle?

  4. SQL Server - vnitřní spojení při aktualizaci