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'