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.