sql >> Database >  >> RDS >> MariaDB

Hoe CHAR_LENGTH() werkt in MariaDB

In MariaDB, CHAR_LENGTH() is een ingebouwde tekenreeksfunctie die de lengte van het gegeven tekenreeksargument teruggeeft, gemeten in tekens.

Syntaxis

De syntaxis gaat als volgt:

CHAR_LENGTH(str)

Waar str is de tekenreeks waarvoor de lengte wordt geretourneerd.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT CHAR_LENGTH('Splash');

Resultaat:

+-----------------------+
| CHAR_LENGTH('Splash') |
+-----------------------+
|                     6 |
+-----------------------+

Multi-Byte-tekens

De CHAR_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 CHAR_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 
    CHAR_LENGTH('©'),
    LENGTH('©'),
    BIT_LENGTH('©');

Resultaat:

+-------------------+--------------+------------------+
| CHAR_LENGTH('©')  | LENGTH('©')  | BIT_LENGTH('©')  |
+-------------------+--------------+------------------+
|                 1 |            2 |               16 |
+-------------------+--------------+------------------+

Het copyright-symbool (© ) gebruikt twee bytes. CHAR_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 gezegd, als het in Oracle-modus was geweest, LENGTH() zou zich gedragen hebben als CHAR_LENGTH() en retourneerde 1 .

Nullargumenten

Doorgeven van null retourneert null :

SELECT CHAR_LENGTH(null);

Resultaat:

+-------------------+
| CHAR_LENGTH(null) |
+-------------------+
|              NULL |
+-------------------+

Ontbrekend argument

Aanroepen van CHAR_LENGTH() zonder een argument door te geven resulteert in een fout:

SELECT CHAR_LENGTH();

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHAR_LENGTH'

Zie ook de CHARACTER_LENGTH() functie, wat een synoniem is voor CHAR_LENGTH() .


  1. MySQL-prestaties verbeteren met geavanceerde InnoDB-instellingen

  2. Hoe BIN() werkt in MariaDB

  3. Alleen de datum retourneren van een SQL Server DateTime-gegevenstype

  4. SQL om het eerste niet-numerieke teken in een string te vinden