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'