sql >> Database >  >> RDS >> MariaDB

MariaDB CHARACTER_LENGTH() uitgelegd

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

CHARACTER_LENGTH() is eigenlijk een synoniem voor CHAR_LENGTH() , dus u kunt beide gebruiken.

Syntaxis

De syntaxis gaat als volgt:

CHARACTER_LENGTH(str)

Waar str is de tekenreeks waarvoor de lengte wordt geretourneerd.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT CHARACTER_LENGTH('Cat');

Resultaat:

+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
|                       3 |
+-------------------------+

In dit geval was de string drie karakters lang, en dus kregen we 3 .

Niet-strings

Als het argument geen string is, wordt het geconverteerd naar een string.

Hier is nog een voorbeeld dat een getal gebruikt:

SELECT CHARACTER_LENGTH(1234);

Resultaat:

+------------------------+
| CHARACTER_LENGTH(1234) |
+------------------------+
|                      4 |
+------------------------+

Vergelijking met CHAR_LENGTH()

Zoals vermeld, CHARACTER_LENGTH() is een synoniem voor CHAR_LENGTH() . Hier is het in vergelijking met CHAR_LENGTH() :

SELECT 
    CHARACTER_LENGTH(1234),
    CHAR_LENGTH(1234);

Resultaat:

+------------------------+-------------------+
| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |
+------------------------+-------------------+
|                      4 |                 4 |
+------------------------+-------------------+

Multi-Byte-tekens

De CHARACTER_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 CHARACTER_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 
    CHARACTER_LENGTH('อ'),
    LENGTH('อ'),
    BIT_LENGTH('อ');

Resultaat:

+-------------------------+---------------+-------------------+
| CHARACTER_LENGTH('อ')   | LENGTH('อ')   | BIT_LENGTH('อ')   |
+-------------------------+---------------+-------------------+
|                       1 |             3 |                24 |
+-------------------------+---------------+-------------------+

Dit Thaise karakter ( ) gebruikt 3 bytes. CHARACTER_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 vermeld, als het in Oracle-modus was geweest, LENGTH() zou zich gedragen hebben als CHARACTER_LENGTH() en retourneerde 1 .

Nullargumenten

Doorgeven van null retourneert null :

SELECT CHARACTER_LENGTH(null);

Resultaat:

+------------------------+
| CHARACTER_LENGTH(null) |
+------------------------+
|                   NULL |
+------------------------+

Ontbrekend argument

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

SELECT CHARACTER_LENGTH();

Resultaat:

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

  1. Intermitterende ODBC-verbindingsfouten

  2. Hoe een externe sleutelbeperking te maken met ON DELETE SET NULL-optie in SQL Server - SQL Server / TSQL-zelfstudie deel 81

  3. MAAND() Voorbeelden in SQL Server (T-SQL)

  4. Hoe verbinding maken met externe Oracle DB met PL/SQL Developer?