sql >> Databasteknik >  >> RDS >> MariaDB

MariaDB CHARACTER_LENGTH() Förklarad

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

CHARACTER_LENGTH() är faktiskt en synonym för CHAR_LENGTH() , så att du kan använda antingen.

Syntax

Syntaxen ser ut så här:

CHARACTER_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 CHARACTER_LENGTH('Cat'); 

Resultat:

+------------------------+| CHARACTER_LENGTH('Katt') |+-------------------------+| 3 |+-------------------------+

I det här fallet var strängen tre tecken lång, så vi fick 3 .

Icke-strängar

Om argumentet inte är en sträng, konverteras det till en sträng.

Här är ett annat exempel som använder ett nummer:

SELECT CHARACTER_LENGTH(1234); 

Resultat:

+------------------------+| CHARACTER_LENGTH(1234) |+------------------------+| 4 |+------------------------+

Jämförelse med CHAR_LENGTH()

Som nämnts, CHARACTER_LENGTH() är en synonym för CHAR_LENGTH() . Här är det i jämförelse med CHAR_LENGTH() :

SELECT 
    CHARACTER_LENGTH(1234),
    CHAR_LENGTH(1234); 

Resultat:

+------------------------+------------------------+| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |+------------------------+------------------------ +| 4 | 4 |+------------------------+------------------------+ 

Multi-Byte-tecken

CHARACTER_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 (såvida det inte är i Oracle-läge, i vilket fall det gör samma sak som CHARACTER_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 
    CHARACTER_LENGTH('อ'),
    LENGTH('อ'),
    BIT_LENGTH('อ'); 

Resultat:

+------------------------+--------------+---- ---------------+| CHARACTER_LENGTH('อ') | LENGTH('อ') | BIT_LENGTH('อ') |+------------------------+--------------------+ ------------------+| 1 | 3 | 24 |+-------------------------+---------------- --------------+

Detta thailändska tecken ( ) använder 3 byte. CHARACTER_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 CHARACTER_LENGTH() och returnerade 1 .

Nollargument

Skickar null returnerar null :

SELECT CHARACTER_LENGTH(null); 

Resultat:

+------------------------+| CHARACTER_LENGTH(null) |+------------------------+| NULL |+------------------------+

Argument saknas

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

SELECT CHARACTER_LENGTH(); 

Resultat:

ERROR 1582 (42000):Fel parameterantal i anropet till den ursprungliga funktionen 'CHARACTER_LENGTH'

  1. Få tidsskillnad mellan två tider i PHP

  2. Infoga om det inte finns, annars returnerar id i postgresql

  3. Använder datum i en kontrollbegränsning, Oracle

  4. Fylla på Teradata med realistiska testdata De Novo