COERCIBILITY | Syntax: | COERCIBILITY(Zeichenkette) | Rückgabe-Wert: | INTEGER | Funktions-Typ: | Informations-Funktion | |
|
|
Die SQL-Funktion COERCIBILITY() gibt den Koerzbarkeitswert der Sortierung (Collation) des Arguments "Zeichenkette" zurück.
Die Koerzbarkeit definiert, was im Falle eines Sortierungskonflikts in was konvertiert wird, wobei ein Ausdruck mit höherer Koerzbarkeit in die Kollatierung (Collation) eines Ausdrucks mit geringerer Koerzbarkeit konvertiert wird.
Coercibility | Beschreibung | Beispiel |
0 | Explizit | Wert, der eine COLLATE-Klausel verwendet |
1 | Keine Sortierung | Verkettete Zeichenfolgen mit unterschiedlichen Sortierungen |
2 | Implizit | Spaltenwert |
3 | Konstante | USER() Rückgabewert |
4 | Erzwingbar | Literale Zeichenfolge |
5 | Geringe Erzwingbarkeit | Zahlen |
6 | Ignorierbar | NULL oder von NULL abgeleitet |
|
SQL Beispiele für die COERCIBILITY-Funktion |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
|
SELECT COERCIBILITY('Test');
SELECT COERCIBILITY(100);
SELECT COERCIBILITY(convert(100.234 USING utf8));
SELECT COERCIBILITY(convert(100 USING utf8));
SELECT COERCIBILITY(convert('Test' USING utf32));
SELECT COERCIBILITY(convert('Test', char));
SELECT COERCIBILITY(convert('Test', nchar)); /* To National Character Set */
SELECT COERCIBILITY(convert('Test', char CHARACTER SET utf8mb4));
SELECT COERCIBILITY(null);
|
|
COERCIBILITY('Test') |
int(10) |
4 |
|
|
COERCIBILITY(100) |
int(10) |
5 |
|
|
COERCIBILITY(convert(100.234 USING utf8)) |
int(10) |
2 |
|
|
COERCIBILITY(convert(100 USING utf8)) |
int(10) |
2 |
|
|
COERCIBILITY(convert('Test' USING utf32)) |
int(10) |
2 |
|
|
COERCIBILITY(convert('Test', char)) |
int(10) |
2 |
|
|
COERCIBILITY(convert('Test', nchar)) |
int(10) |
2 |
|
|
COERCIBILITY(convert('Test', char CHARACTER SET utf8mb4)) |
int(10) |
2 |
|
|
COERCIBILITY(null) |
int(10) |
6 |
|
|
|
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: |
Verwendung der COERCIBILITY() Funktion in MySQL und MariaDB-Datenbanken |
In MySQL und MariaDB kann die Funktion COERCIBILITY() verwendet werden, um die Kollationszwangsfähigkeit eines Ausdrucks oder einer Spaltensortierung (Collation) zu bestimmen, indem sie einen ganzzahligen Wert zurückgibt, der den Grad der Zwanghaftigkeit darstellt, die verwendet wird, um zu bestimmen, wie Operanden in einem Ausdruck verglichen und implizit konvertiert werden sollen, wenn sich ihre Sortierungen unterscheiden. Die Funktion verwendet eine Tabellen-Spalte, einen Literalwert oder einen beliebigen gültigen Ausdruck als Argument.
Die Koerzitivibilitätswerte werden wie folgt zugeordnet:
0: Konstanten und Systemfunktionen = höchste Zwanghaftigkeit
1: Kollationskoerzibilität des Ergebnisses der COALESCE-Funktion
2: Explizite Kollatierungserzwingbarkeit mithilfe der COLLATE-Klausel
3: Kollationskoerzibilität einer Tabellen-Spalte
4: Kollationszwangsfähigkeit eines Ausdrucks
5: Implizite Kollatierungszwangsfähigkeit von String-Literalen und Zahlenwerten = geringste Zwangsfähigkeit
6: NULL-Werte = werden ignoriert
Die COERCIBILITY()-Funktion wird hauptsächlich intern von der Datenbank-Engine zur Bestimmung der Sortierung (Collation) und des impliziten Konvertierungsverhaltens verwendet bei der Verarbeitung komplexer Abfragen, der Kollatierungsanalyse und der Lösung von Kollatierungsproblemen. Die praktische Verwendung der Funktion in SQL-Abfragen ist relativ begrenzt, kann jedoch bei der Fehlerbehebung bei Sortierungsproblemen oder bei der Bearbeitung komplexer Abfragen mit unterschiedlichen Sortierungen und impliziten Konvertierungen nützlich sein. |
|
Weitere MySQL und MariaDB SQL Informations-Funktionen |
|