sql >> Databasteknik >  >> RDS >> Mysql

Hur CHARACTER_LENGTH()-funktionen fungerar i MySQL

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.


  1. Hur läser man innehållet i en .sql-fil till ett R-skript för att köra en fråga?

  2. Spring JDBC-stöd och stor datauppsättning

  3. 13 bloggartiklar om bästa praxis och tips för databasdesign

  4. SQL Server Konvertera Varchar till Datetime