sql >> Database >  >> RDS >> MariaDB

Hoe OCTET_LENGTH() werkt in MariaDB

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

OCTET_LENGTH() is een synoniem voor LENGTHB() .

Het is ook een synoniem voor LENGTH() wanneer niet in Oracle-modus (LENGTH() gedraagt ​​zich anders in Oracle-modus).

Syntaxis

De syntaxis gaat als volgt:

OCTET_LENGTH(str)

Waar str is de tekenreeks waarvoor de lengte wordt geretourneerd.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT OCTET_LENGTH('café');

Resultaat:

+-----------------------+
| OCTET_LENGTH('café')  |
+-----------------------+
|                     5 |
+-----------------------+

In dit geval was de tekenreeks vier tekens lang, maar OCTET_LENGTH() 5 geretourneerd . Dit komt omdat het laatste teken twee octetten/bytes gebruikt.

Vergelijking met CHAR_LENGTH() en BIT_LENGTH()

Hier is een snelle vergelijking tussen OCTET_LENGTH() , CHAR_LENGTH() (wat het aantal tekens retourneert in de string) en BIT_LENGTH() (wat het aantal bits retourneert in de string):

SELECT 
    OCTET_LENGTH('อ'),
    CHAR_LENGTH('อ'),
    BIT_LENGTH('อ');

Resultaat:

+---------------------+--------------------+-------------------+
| OCTET_LENGTH('อ')   | CHAR_LENGTH('อ')   | BIT_LENGTH('อ')   |
+---------------------+--------------------+-------------------+
|                   3 |                  1 |                24 |
+---------------------+--------------------+-------------------+

Dit Thaise karakter ( ) gebruikt 3 bytes, en daarom OCTET_LENGTH() retourneert 3 .

CHAR_LENGTH() geeft het aantal tekens terug (1 ), en BIT_LENGTH() geeft het aantal bits terug (24 ).

Niet-strings

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

Hier is nog een voorbeeld dat een getal gebruikt:

SELECT OCTET_LENGTH(1234);

Resultaat:

+--------------------+
| OCTET_LENGTH(1234) |
+--------------------+
|                  4 |
+--------------------+

Nullargumenten

Doorgeven van null retourneert null :

SELECT OCTET_LENGTH(null);

Resultaat:

+--------------------+
| OCTET_LENGTH(null) |
+--------------------+
|               NULL |
+--------------------+

Ontbrekend argument

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

SELECT OCTET_LENGTH();

Resultaat:

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

  1. Hoe duplicaten op een MySQL-tabel te verwijderen?

  2. Wanneer geclusterde of niet-geclusterde indexen gebruiken in SQL Server?

  3. Wijzig het gegevenstype van een kolom in serieel

  4. Hoe Postgres verbinden met localhost-server met behulp van pgAdmin op Ubuntu?