В MariaDB, COERCIBILITY() е системна функция, която връща стойността на съпоставяемостта на нейния низ аргумент.
Той определя как ще бъдат преобразувани съпоставянията в случай на конфликт на съпоставяне. При такива конфликти израз с по-висока коерцибилност се преобразува в съпоставяне на израз с по-ниска коерцибилност.
Синтаксис
Синтаксисът е така:
COERCIBILITY(str)
Където str е изразът, за който искате да получите принудителност.
COERCIBILITY() функцията връща стойност между 0 и 5 , както е посочено в следната таблица:
| Принуда | Описание | Пример |
|---|---|---|
| 0 | Изрично | Стойност с помощта на COLLATE клауза |
| 1 | Без съпоставяне | Конкатенирани низове, използващи различни съпоставяния |
| 2 | Неявно | Стойност на колоната |
| 3 | Константа | Връщаната стойност от функции като USER() , VERSION() и др. |
| 4 | Принудително | Литерален низ |
| 5 | Незабележимо | NULL или извлечен от NULL |
Пример
Ето пример за демонстрация:
SELECT COERCIBILITY('Green'); Резултат:
<пред>+-----------------------+| ПРИНУДИТЕЛНОСТ('Зелено') |+-----------------------+| 4 |+-----------------------+
Това е нормален низ и следователно коерцибилността е 4 .
Изрично съпоставяне
Ето пример за изрично посочване на съпоставянето с COLLATE клауза.:
SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci); Резултат:
+------------------------------------------------------- -+| COERCIBILITY('Mango' COLLATE utf8_spanish_ci) |+---------------------------------------- -------+| 0 |+------------------------------------------------------- +
Това връща 0 защото изрично посочих съпоставянето с COLLATE клауза.
Колона на базата данни
В този пример връщам данни от колона на база данни.:
SELECT
PetName,
COERCIBILITY(PetName)
FROM Pets
LIMIT 1; Резултат:
+--------+-----------------------+| Име на домашни любимци | ПРИНУДИТЕЛНОСТ (Име на домашни любимци) |+--------+-----------------------+| Пухкави | 2 |+---------+-----------------------+
Фактът, че това е колона от база данни, означава, че това е имплицитно съпоставяне и следователно получаваме принудителна сила от 2 .
Константи
В този пример получавам принуждаемостта на връщаната стойност от вградения VERSION() функция:
SELECT COERCIBILITY(VERSION()); Резултат:
+------------------------+| ПРИНУДИТЕЛНОСТ(ВЕРСИЯ()) |+-------------------+| 3 |+-------------------+
Нулеви стойности
Ето какво се случва, когато предадем null :
SELECT COERCIBILITY(null); Резултат:
+-------------------+| КОЕРЦИБИЛНОСТ(нула) |+-------------------+| 6 |+-------------------+
Нулевите стойности са игнорирани и така получаваме коерцибилност от 6 .
Без аргументи
Извикване на COERCIBILITY() без никакви аргументи води до грешка:
SELECT COERCIBILITY(); Резултат:
ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествена функция „COERCIBILITY“