In MariaDB COERCIBILITY()
ist eine Systemfunktion, die den Koerzbarkeitswert der Sortierung ihres String-Arguments zurückgibt.
Es definiert, wie Kollatierungen im Falle eines Kollatierungskonflikts konvertiert werden. In solchen Konflikten wird ein Ausdruck mit einer höheren Zwangskraft in die Kollatierung eines Ausdrucks mit einer niedrigeren Zwangskraft umgewandelt.
Syntax
Die Syntax sieht so aus:
COERCIBILITY(str)
Wobei str
ist der Ausdruck, für den Sie die Erzwingen abrufen möchten.
Die COERCIBILITY()
Funktion gibt einen Wert zwischen 0
zurück und 5
, wie in der folgenden Tabelle beschrieben:
Erzwingbarkeit | Beschreibung | Beispiel |
---|---|---|
0 | Explizit | Wert mit einem COLLATE Klausel |
1 | Keine Sortierung | Verkettete Zeichenfolgen mit unterschiedlichen Sortierungen |
2 | Implizit | Spaltenwert |
3 | Konstant | Der Rückgabewert von Funktionen wie USER() , VERSION() , usw |
4 | Erzwingbar | Literal-String |
5 | Ignorierbar | NULL oder abgeleitet von NULL |
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT COERCIBILITY('Green');
Ergebnis:
+-----------------------+| COERCIBILITY('Grün') |+----------------------+| 4 |+-----------------------+
Dies ist eine normale Zeichenkette und daher ist die Koerzbarkeit 4
.
Explizite Sortierung
Hier ist ein Beispiel für die explizite Angabe der Sortierung mit COLLATE
Klausel.:
SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);
Ergebnis:
Dies gibt 0
zurück weil ich die Sortierung explizit mit dem COLLATE
angegeben habe Klausel.
Datenbankspalte
In diesem Beispiel gebe ich Daten aus einer Datenbankspalte zurück.:
SELECT
PetName,
COERCIBILITY(PetName)
FROM Pets
LIMIT 1;
Ergebnis:
+---------+----------------------+| Haustiername | COERCIBILITY(PetName) |+---------+-----------------------+| Flauschig | 2 |+---------+----------------------+
Die Tatsache, dass es sich um eine Datenbankspalte handelt, bedeutet, dass es sich um eine implizite Sortierung handelt, und daher erhalten wir eine Zwangsbedingung von 2
.
Konstanten
In diesem Beispiel erhalte ich die Zwingbarkeit des Rückgabewerts von der eingebauten VERSION()
Funktion:
SELECT COERCIBILITY(VERSION());
Ergebnis:
+-------------------------+| COERCIBILITY(VERSION()) |+--------------------+| 3 |+-------------------------+
Nullwerte
Folgendes passiert, wenn wir null
übergeben :
SELECT COERCIBILITY(null);
Ergebnis:
+--------------------+| COERCIBILITY(null) |+--------------------+| 6 |+--------------------+
Nullwerte sind ignorierbar, daher erhalten wir eine Koerzitivität von 6
.
Keine Argumente
Aufruf von COERCIBILITY()
ohne Argumente führt zu einem Fehler:
SELECT COERCIBILITY();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'COERCIBILITY'