sql >> Databasteknik >  >> RDS >> MariaDB

Hur CHAR_LENGTH() fungerar i MariaDB

I MariaDB, CHAR_LENGTH() är en inbyggd strängfunktion som returnerar längden på det givna strängargumentet, mätt i tecken.

Syntax

Syntaxen ser ut så här:

CHAR_LENGTH(str)

Där str är strängen för vilken längden kommer att returneras.

Exempel

Här är ett grundläggande exempel:

SELECT CHAR_LENGTH('Splash');

Resultat:

+-----------------------+
| CHAR_LENGTH('Splash') |
+-----------------------+
|                     6 |
+-----------------------+

Multi-Byte-tecken

CHAR_LENGTH() Funktionen räknar varje tecken som ett enda tecken, oavsett hur många byte den använder. Därför kommer tecken som använder två, tre eller till och med fyra byte fortfarande att räknas som ett tecken.

Detta till skillnad från funktioner som LENGTH() , som returnerar antalet byte (om det inte är i Oracle-läge, i vilket fall det gör samma sak som CHAR_LENGTH() – returnerar antalet tecken). Det är också i motsats till funktioner som BIT_LENGTH() som returnerar antalet bitar i en sträng.

Här är ett exempel som jämför dessa funktioner:

SELECT 
    CHAR_LENGTH('©'),
    LENGTH('©'),
    BIT_LENGTH('©');

Resultat:

+-------------------+--------------+------------------+
| CHAR_LENGTH('©')  | LENGTH('©')  | BIT_LENGTH('©')  |
+-------------------+--------------+------------------+
|                 1 |            2 |               16 |
+-------------------+--------------+------------------+

Upphovsrättssymbolen (© ) använder två byte. CHAR_LENGTH() returnerar 1, eftersom det fortfarande bara är ett enda tecken. LENGTH() och BIT_LENGTH() å andra sidan, returnera antalet byte respektive bitar.

Det här exemplet gjordes med standard SQL_MODE . Som nämnts, om den hade varit i Oracle-läge, LENGTH() skulle ha betett sig som CHAR_LENGTH() och returnerade 1 .

Nollargument

Skickar null returnerar null :

SELECT CHAR_LENGTH(null);

Resultat:

+-------------------+
| CHAR_LENGTH(null) |
+-------------------+
|              NULL |
+-------------------+

Argument saknas

Anropar CHAR_LENGTH() utan att skicka ett argument resulterar det i ett fel:

SELECT CHAR_LENGTH();

Resultat:

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

Se även CHARACTER_LENGTH() funktion, som är en synonym för CHAR_LENGTH() .


  1. Använda INSERT INTO från SQL Server för att ändra Salesforce-data

  2. Databasbelastningsbalansering:distribuerade vs centraliserade inställningar

  3. HOUR() Exempel – MySQL

  4. Hur man tar bort inläggsrevisioner med WP-CLI