В 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“