W MariaDB, COERCIBILITY() jest funkcją systemową, która zwraca wartość koercji sortowania swojego argumentu ciągu.
Określa, w jaki sposób sortowanie zostanie przekonwertowane w przypadku konfliktu sortowania. W takich konfliktach wyrażenie o wyższej koercji jest przekształcane w zestawienie wyrażenia o niższej koercji.
Składnia
Składnia wygląda tak:
COERCIBILITY(str)
Gdzie str to wyrażenie, za które chcesz uzyskać przymus.
COERCIBILITY() funkcja zwraca wartość pomiędzy 0 i 5 , jak przedstawiono w poniższej tabeli:
| Przymus | Opis | Przykład |
|---|---|---|
| 0 | Jasne | Wartość przy użyciu COLLATE klauzula |
| 1 | Brak sortowania | Połączone ciągi za pomocą różnych sortowań |
| 2 | Niejawne | Wartość kolumny |
| 3 | Stała | Wartość zwracana z funkcji takich jak USER() , VERSION() itp. |
| 4 | Przymusowe | Dosłowny ciąg |
| 5 | Ignorowany | NULL lub wywodzi się z NULL |
Przykład
Oto przykład do zademonstrowania:
SELECT COERCIBILITY('Green'); Wynik:
+-----------------------+
| COERCIBILITY('Green') |
+-----------------------+
| 4 |
+-----------------------+
To jest normalny ciąg, więc koercyfikacja wynosi 4 .
Wyraźne sortowanie
Oto przykład jawnego określenia sortowania za pomocą COLLATE klauzula.:
SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci); Wynik:
+-----------------------------------------------+
| COERCIBILITY('Mango' COLLATE utf8_spanish_ci) |
+-----------------------------------------------+
| 0 |
+-----------------------------------------------+
Zwraca 0 ponieważ jawnie określiłem sortowanie za pomocą COLLATE klauzula.
Kolumna bazy danych
W tym przykładzie zwracam dane z kolumny bazy danych.:
SELECT
PetName,
COERCIBILITY(PetName)
FROM Pets
LIMIT 1; Wynik:
+---------+-----------------------+ | PetName | COERCIBILITY(PetName) | +---------+-----------------------+ | Fluffy | 2 | +---------+-----------------------+
Fakt, że jest to kolumna bazy danych oznacza, że jest to niejawne zestawienie, a zatem otrzymujemy koercyjność 2 .
Stałe
W tym przykładzie otrzymuję koercyjność wartości zwracanej z wbudowanej funkcji VERSION() funkcja:
SELECT COERCIBILITY(VERSION()); Wynik:
+-------------------------+ | COERCIBILITY(VERSION()) | +-------------------------+ | 3 | +-------------------------+
Wartości puste
Oto, co się dzieje, gdy przekazujemy null :
SELECT COERCIBILITY(null); Wynik:
+--------------------+ | COERCIBILITY(null) | +--------------------+ | 6 | +--------------------+
Wartości null można zignorować, więc otrzymujemy koercyjność 6 .
Brak argumentów
Wywołanie COERCIBILITY() bez żadnych argumentów powoduje błąd:
SELECT COERCIBILITY(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'COERCIBILITY'