In MySQL is de CHARACTER_LENGTH()
functie retourneert de lengte van een string, gemeten in karakters.
CHARACTER_LENGTH()
is een synoniem voor de CHAR_LENGTH()
functie.
Syntaxis
De syntaxis gaat als volgt:
CHARACTER_LENGTH(str)
Waar str
is de tekenreeks waarvoor de lengte wordt geretourneerd.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld van het basisgebruik:
SELECT CHARACTER_LENGTH('Cat');
En hier is het resultaat:
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
Voorbeeld 2 – Achterliggende blanco's
Merk op dat CHARACTER_LENGTH()
neemt volgspaties (bijv. spaties aan het einde van de tekenreeks) op in zijn berekeningen.
Dus als we een spatie toevoegen aan het einde van het vorige voorbeeld:
SELECT CHARACTER_LENGTH('Cat');
Dit is het resultaat:
+--------------------------+ | CHARACTER_LENGTH('Cat ') | +--------------------------+ | 4 | +--------------------------+
Maar we kunnen die volgspatie altijd verwijderen met behulp van de TRIM()
functie of de RTRIM()
functie:
SELECT CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM', CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';
Dit is het resultaat:
+------+-------+ | TRIM | RTRIM | +------+-------+ | 3 | 3 | +------+-------+
Voorbeeld 3 – Voorloopspaties
Hetzelfde concept is van toepassing op leidende spaties. U kunt ofwel TRIM
. gebruiken of LTRIM
:
SELECT CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM', CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';
Resultaat:
+------+-------+ | TRIM | LTRIM | +------+-------+ | 3 | 3 | +------+-------+
Voorbeeld 4 – Gegevenstypen
Het maakt niet uit met welk gegevenstype de tekenreeks is opgeslagen, het geeft nog steeds hetzelfde resultaat. Dit in tegenstelling tot de LENGTH()
functie, die het dubbele aantal tekens retourneert in gevallen waarin de gegevens worden opgeslagen als een Unicode-tekenreeks.
In het volgende voorbeeld gebruikt de kolom ArtistName varchar(255) :
SELECT CHARACTER_LENGTH(ArtistName) Result FROM Artists WHERE ArtistName = 'Lit';
Dit is het resultaat:
+--------+ | Result | +--------+ | 3 | +--------+
En als we de ArtistName
. wijzigen kolom om Unicode te gebruiken:
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
En voer dezelfde query opnieuw uit:
SELECT CHARACTER_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
We krijgen nog steeds hetzelfde resultaat:
+--------+ | Result | +--------+ | 3 | +--------+
Als we echter de LENGTH()
. hadden gebruikt functie, zou het resultaat 6 zijn. Dit komt omdat Unicode-strings 2 bytes per teken opslaan, en de LENGTH()
functie retourneert de lengte gemeten in bytes.