In MariaDB, CHARACTER_LENGTH()
is een ingebouwde tekenreeksfunctie die de lengte van het gegeven tekenreeksargument retourneert, gemeten in tekens.
CHARACTER_LENGTH()
is eigenlijk een synoniem voor CHAR_LENGTH()
, dus u kunt beide gebruiken.
Syntaxis
De syntaxis gaat als volgt:
CHARACTER_LENGTH(str)
Waar str
is de tekenreeks waarvoor de lengte wordt geretourneerd.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT CHARACTER_LENGTH('Cat');
Resultaat:
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
In dit geval was de string drie karakters lang, en dus kregen we 3
.
Niet-strings
Als het argument geen string is, wordt het geconverteerd naar een string.
Hier is nog een voorbeeld dat een getal gebruikt:
SELECT CHARACTER_LENGTH(1234);
Resultaat:
+------------------------+ | CHARACTER_LENGTH(1234) | +------------------------+ | 4 | +------------------------+
Vergelijking met CHAR_LENGTH()
Zoals vermeld, CHARACTER_LENGTH()
is een synoniem voor CHAR_LENGTH()
. Hier is het in vergelijking met CHAR_LENGTH()
:
SELECT
CHARACTER_LENGTH(1234),
CHAR_LENGTH(1234);
Resultaat:
+------------------------+-------------------+ | CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) | +------------------------+-------------------+ | 4 | 4 | +------------------------+-------------------+
Multi-Byte-tekens
De CHARACTER_LENGTH()
functie telt elk teken als een enkel teken, ongeacht het aantal bytes dat het gebruikt. Daarom worden tekens die twee, drie of zelfs vier bytes gebruiken nog steeds als één teken geteld.
Dit in tegenstelling tot functies zoals LENGTH()
, die het aantal bytes retourneert (tenzij het in Oracle-modus is, in welk geval het hetzelfde doet als CHARACTER_LENGTH()
– geeft het aantal tekens terug). Het is ook in tegenstelling tot functies zoals BIT_LENGTH()
die het aantal bits in een string teruggeeft.
Hier is een voorbeeld dat deze functies vergelijkt:
SELECT
CHARACTER_LENGTH('อ'),
LENGTH('อ'),
BIT_LENGTH('อ');
Resultaat:
+-------------------------+---------------+-------------------+ | CHARACTER_LENGTH('อ') | LENGTH('อ') | BIT_LENGTH('อ') | +-------------------------+---------------+-------------------+ | 1 | 3 | 24 | +-------------------------+---------------+-------------------+
Dit Thaise karakter (อ
) gebruikt 3 bytes. CHARACTER_LENGTH()
retourneert 1, omdat het nog steeds maar een enkel teken is. LENGTH()
en BIT_LENGTH()
aan de andere kant, retourneer respectievelijk het aantal bytes en bits.
Dit voorbeeld is gedaan met de standaard SQL_MODE
. Zoals vermeld, als het in Oracle-modus was geweest, LENGTH()
zou zich gedragen hebben als CHARACTER_LENGTH()
en retourneerde 1
.
Nullargumenten
Doorgeven van null
retourneert null
:
SELECT CHARACTER_LENGTH(null);
Resultaat:
+------------------------+ | CHARACTER_LENGTH(null) | +------------------------+ | NULL | +------------------------+
Ontbrekend argument
Aanroepen van CHARACTER_LENGTH()
zonder een argument door te geven resulteert in een fout:
SELECT CHARACTER_LENGTH();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHARACTER_LENGTH'