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'