I MySQL, CHARACTER_LENGTH()
funktion returnerar längden på en sträng, mätt i tecken.
CHARACTER_LENGTH()
är en synonym för CHAR_LENGTH()
funktion.
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 1 – Grundläggande användning
Här är ett exempel på den grundläggande användningen:
SELECT CHARACTER_LENGTH('Cat');
Och här är resultatet:
+-------------------------+ | CHARACTER_LENGTH('Cat') | +-------------------------+ | 3 | +-------------------------+
Exempel 2 – Efterföljande blanketter
Observera att CHARACTER_LENGTH()
inkluderar efterföljande ämnen (t.ex. mellanslag i slutet av strängen) i sina beräkningar.
Så om vi lägger till ett mellanslag i slutet av föregående exempel:
SELECT CHARACTER_LENGTH('Cat ');
Här är resultatet:
+--------------------------+ | CHARACTER_LENGTH('Cat ') | +--------------------------+ | 4 | +--------------------------+
Men vi kan alltid ta bort det efterföljande utrymmet genom att använda antingen TRIM()
funktion eller RTRIM()
funktion:
SELECT CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM', CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';
Här är resultatet:
+------+-------+ | TRIM | RTRIM | +------+-------+ | 3 | 3 | +------+-------+
Exempel 3 – Leading Blanks
Samma koncept gäller för ledande ämnen. Du kan använda antingen TRIM
eller LTRIM
:
SELECT CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM', CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';
Resultat:
+------+-------+ | TRIM | LTRIM | +------+-------+ | 3 | 3 | +------+-------+
Exempel 4 – Datatyper
Det spelar ingen roll vilken datatyp strängen lagras som, den kommer fortfarande att returnera samma resultat. Detta är i motsats till LENGTH()
funktion, som returnerar dubbla antalet tecken i de fall data lagras som en Unicode-sträng.
I följande exempel använder kolumnen ArtistName varchar(255) :
SELECT CHARACTER_LENGTH(ArtistName) Result FROM Artists WHERE ArtistName = 'Lit';
Här är resultatet:
+--------+ | Result | +--------+ | 3 | +--------+
Och om vi ändrar ArtistName
kolumn för att använda Unicode:
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
Och kör samma fråga igen:
SELECT CHARACTER_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Vi får fortfarande samma resultat:
+--------+ | Result | +--------+ | 3 | +--------+
Men om vi hade använt LENGTH()
funktion, skulle resultatet bli 6. Detta beror på att Unicode-strängar lagrar 2 byte per tecken och LENGTH()
funktion returnerar längden mätt i byte.