In MariaDB, COERCIBILITY()
è una funzione di sistema che restituisce il valore di coercibilità di confronto del suo argomento stringa.
Definisce come verranno convertite le regole di confronto in caso di conflitto di regole di confronto. In tali conflitti, un'espressione con una coercibilità superiore viene convertita nella raccolta di un'espressione con una coercibilità inferiore.
Sintassi
La sintassi è questa:
COERCIBILITY(str)
Dove str
è l'espressione per cui vorresti ottenere la coercibilità.
La COERCIBILITY()
la funzione restituisce un valore compreso tra 0
e 5
, come indicato nella tabella seguente:
Coercibilità | Descrizione | Esempio |
---|---|---|
0 | Esplicito | Valore utilizzando un COLLATE clausola |
1 | Nessuna raccolta | Stringhe concatenate che utilizzano regole di confronto diverse |
2 | Implicito | Valore colonna |
3 | Costante | Il valore restituito da funzioni come USER() , VERSION() , ecc |
4 | Coercibile | Stringa letterale |
5 | Ignorabile | NULL o derivato da NULL |
Esempio
Ecco un esempio da dimostrare:
SELECT COERCIBILITY('Green');
Risultato:
+-----------------------+ | COERCIBILITY('Green') | +-----------------------+ | 4 | +-----------------------+
Questa è una stringa normale e quindi la coercibilità è 4
.
Fascicolazione esplicita
Ecco un esempio di specificazione esplicita delle regole di confronto con COLLATE
clausola.:
SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);
Risultato:
+-----------------------------------------------+ | COERCIBILITY('Mango' COLLATE utf8_spanish_ci) | +-----------------------------------------------+ | 0 | +-----------------------------------------------+
Questo restituisce 0
perché ho specificato esplicitamente le regole di confronto con COLLATE
clausola.
Colonna del database
In questo esempio, restituisco i dati da una colonna del database.:
SELECT
PetName,
COERCIBILITY(PetName)
FROM Pets
LIMIT 1;
Risultato:
+---------+-----------------------+ | PetName | COERCIBILITY(PetName) | +---------+-----------------------+ | Fluffy | 2 | +---------+-----------------------+
Il fatto che sia una colonna del database significa che si tratta di un confronto implicito e quindi otteniamo una coercibilità di 2
.
Costanti
In questo esempio, ottengo la coercibilità del valore restituito dall'inbuilt VERSION()
funzione:
SELECT COERCIBILITY(VERSION());
Risultato:
+-------------------------+ | COERCIBILITY(VERSION()) | +-------------------------+ | 3 | +-------------------------+
Valori Nulli
Ecco cosa succede quando superiamo null
:
SELECT COERCIBILITY(null);
Risultato:
+--------------------+ | COERCIBILITY(null) | +--------------------+ | 6 | +--------------------+
I valori nulli sono ignorabili e quindi otteniamo una coercibilità di 6
.
Nessun argomento
Chiamando COERCIBILITY()
senza alcun argomento genera un errore:
SELECT COERCIBILITY();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'COERCIBILITY'