sql >> Databasteknik >  >> RDS >> MariaDB

Hur COERCIBILITY() fungerar i MariaDB

I MariaDB, COERCIBILITY() är en systemfunktion som returnerar kollationstvingningsvärdet för dess strängargument.

Den definierar hur sorteringar kommer att konverteras vid kollationskonflikt. I sådana konflikter omvandlas ett uttryck med högre tvångsförmåga till sammanställning av ett uttryck med lägre tvångsförmåga.

Syntax

Syntaxen ser ut så här:

COERCIBILITY(str)

Där str är uttrycket som du skulle vilja få tvångsmöjlighet för.

COERCIBILITY() funktion returnerar ett värde mellan 0 och 5 , som beskrivs i följande tabell:

Tvång Beskrivning Exempel
0 Explicit Värde med en COLLATE klausul
1 Ingen sortering Sammanfogade strängar med olika sorteringar
2 Underförstått Kolumnvärde
3 Konstant Returvärdet från funktioner som USER() , VERSION() , etc
4 Tvångsbar Literal sträng
5 Ignoreras NULL eller härledd från NULL

Exempel

Här är ett exempel att visa:

SELECT COERCIBILITY('Green');

Resultat:

+-----------------------+
| COERCIBILITY('Green') |
+-----------------------+
|                     4 |
+-----------------------+

Detta är en normal sträng och därför är tvångsmöjligheten 4 .

Explicit sortering

Här är ett exempel på att explicit specificera sorteringen med COLLATE klausul.:

SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);

Resultat:

+-----------------------------------------------+
| COERCIBILITY('Mango' COLLATE utf8_spanish_ci) |
+-----------------------------------------------+
|                                             0 |
+-----------------------------------------------+

Detta returnerar 0 eftersom jag uttryckligen angav sorteringen med COLLATE klausul.

Databaskolumn

I det här exemplet returnerar jag data från en databaskolumn.:

SELECT 
    PetName,
    COERCIBILITY(PetName)
FROM Pets
LIMIT 1;

Resultat:

+---------+-----------------------+
| PetName | COERCIBILITY(PetName) |
+---------+-----------------------+
| Fluffy  |                     2 |
+---------+-----------------------+

Det faktum att det är en databaskolumn betyder att det är en implicit sammanställning, och därför får vi en tvångsmöjlighet på 2 .

Konstanter

I det här exemplet får jag tvångsförmågan för returvärdet från den inbyggda VERSION() funktion:

SELECT COERCIBILITY(VERSION());

Resultat:

+-------------------------+
| COERCIBILITY(VERSION()) |
+-------------------------+
|                       3 |
+-------------------------+

Nullvärden

Här är vad som händer när vi skickar null :

SELECT COERCIBILITY(null);

Resultat:

+--------------------+
| COERCIBILITY(null) |
+--------------------+
|                  6 |
+--------------------+

Nullvärden kan ignoreras, så vi får en tvångsförmåga på 6 .

Inga argument

Anropar COERCIBILITY() utan några argument resulterar i ett fel:

SELECT COERCIBILITY();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'COERCIBILITY'

  1. Hur formaterar jag mina oracle-frågor så att kolumnerna inte lindas?

  2. Ta kontroll över dina data med Microsoft Access

  3. Bygga en Microsoft Access-databas

  4. Använder Oracle XMLType-kolumnen i viloläge