MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB CHARACTER_LENGTH() erklärt

In MariaDB CHARACTER_LENGTH() ist eine eingebaute String-Funktion, die die Länge des gegebenen String-Arguments zurückgibt, gemessen in Zeichen.

CHARACTER_LENGTH() ist eigentlich ein Synonym für CHAR_LENGTH() , sodass Sie beides verwenden können.

Syntax

Die Syntax lautet wie folgt:

CHARACTER_LENGTH(str) 

Wobei str ist die Zeichenfolge, für die die Länge zurückgegeben wird.

Beispiel

Hier ist ein einfaches Beispiel:

SELECT CHARACTER_LENGTH('Cat'); 

Ergebnis:

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

In diesem Fall war die Zeichenkette drei Zeichen lang, also haben wir 3 erhalten .

Nicht-Strings

Wenn das Argument kein String ist, wird es in einen String umgewandelt.

Hier ist ein weiteres Beispiel, das eine Zahl verwendet:

SELECT CHARACTER_LENGTH(1234); 

Ergebnis:

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

Vergleich mit CHAR_LENGTH()

Wie bereits erwähnt, CHARACTER_LENGTH() ist ein Synonym für CHAR_LENGTH() . Hier im Vergleich mit CHAR_LENGTH() :

SELECT 
    CHARACTER_LENGTH(1234),
    CHAR_LENGTH(1234); 

Ergebnis:

+------------------------+-------------------+| ZEICHENLÄNGE(1234) | ZEICHENLÄNGE(1234) |+-----------------------+------------------- +| 4 | 4 |+------------------------+--------------+ 

Multibyte-Zeichen

Die CHARACTER_LENGTH() -Funktion zählt jedes Zeichen als einzelnes Zeichen, unabhängig davon, wie viele Bytes es verwendet. Daher werden Zeichen, die zwei, drei oder sogar vier Bytes verwenden, weiterhin als ein Zeichen gezählt.

Dies steht im Gegensatz zu Funktionen wie LENGTH() , das die Anzahl der Bytes zurückgibt (es sei denn, es befindet sich im Oracle-Modus, in diesem Fall macht es dasselbe wie CHARACTER_LENGTH() – gibt die Anzahl der Zeichen zurück). Es steht auch im Gegensatz zu Funktionen wie BIT_LENGTH() die die Anzahl der Bits in einem String zurückgibt.

Hier ist ein Beispiel, das diese Funktionen vergleicht:

SELECT 
    CHARACTER_LENGTH('อ'),
    LENGTH('อ'),
    BIT_LENGTH('อ'); 

Ergebnis:

+-------------------------+---------------+---- ---------------+| CHARACTER_LENGTH('อ') | LÄNGE('อ') | BIT_LENGTH('อ') |+--------------------+---------------+ -------------------+| 1 | 3 | 24 |+-------------------------+---------------+----- --------------+

Dieses thailändische Zeichen ( ) verwendet 3 Bytes. CHARACTER_LENGTH() gibt 1 zurück, weil es immer noch nur ein einzelnes Zeichen ist. LENGTH() und BIT_LENGTH() geben andererseits die Anzahl der Bytes bzw. Bits zurück.

Dieses Beispiel wurde mit dem Standard SQL_MODE durchgeführt . Wie bereits erwähnt, wenn es sich im Oracle-Modus befunden hätte, LENGTH() hätte sich wie CHARACTER_LENGTH() verhalten und gab 1 zurück .

Null-Argumente

Übergabe von null gibt null zurück :

SELECT CHARACTER_LENGTH(null); 

Ergebnis:

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

Fehlendes Argument

Aufruf von CHARACTER_LENGTH() ohne Übergabe eines Arguments führt zu einem Fehler:

SELECT CHARACTER_LENGTH(); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'CHARACTER_LENGTH'