MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи COERCIBILITY() в MariaDB

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HA за MySQL и MariaDB - Сравняване на главен-главен репликация с клъстер Galera

  2. Моята MySQL база данни е извън дисковото пространство

  3. 4 начина да получите съпоставяне на база данни в MariaDB

  4. Как да разположите MariaDB клъстер за висока наличност

  5. Как DATEDIFF() работи в MariaDB