sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer OCTET_LENGTH() i MariaDB

I MariaDB, OCTET_LENGTH() er en indbygget strengfunktion, der returnerer længden af ​​det givne strengargument, målt i oktetter (bytes).

OCTET_LENGTH() er et synonym for LENGTHB() .

Det er også et synonym for LENGTH() når den ikke er i Oracle-tilstand (LENGTH() opfører sig anderledes i Oracle-tilstand).

Syntaks

Syntaksen ser sådan ud:

OCTET_LENGTH(str)

Hvor str er den streng, som længden vil blive returneret for.

Eksempel

Her er et grundlæggende eksempel:

SELECT OCTET_LENGTH('café');

Resultat:

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

I dette tilfælde var strengen fire tegn lang, men OCTET_LENGTH() returnerede 5 . Dette skyldes, at det sidste tegn bruger to oktetter/bytes.

Sammenligning med CHAR_LENGTH() og BIT_LENGTH()

Her er en hurtig sammenligning mellem OCTET_LENGTH() , CHAR_LENGTH() (som returnerer antallet af tegn i strengen) og BIT_LENGTH() (som returnerer antallet af bits i strengen):

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

Resultat:

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

Dette thailandske tegn ( ) bruger 3 bytes, og derfor OCTET_LENGTH() returnerer 3 .

CHAR_LENGTH() returnerer antallet af tegn (1 ), og BIT_LENGTH() returnerer antallet af bit (24 ).

Ikke-strenge

Hvis argumentet ikke er en streng, konverteres det til en streng.

Her er et andet eksempel, der bruger et tal:

SELECT OCTET_LENGTH(1234);

Resultat:

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

Nul-argumenter

Sender null returnerer null :

SELECT OCTET_LENGTH(null);

Resultat:

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

Manglende argument

Kalder OCTET_LENGTH() uden at sende et argument resulterer i en fejl:

SELECT OCTET_LENGTH();

Resultat:

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

  1. Oracle 10g tidszoneforvirring

  2. Hvordan kan jeg vise tabelstrukturen i SQL Server-forespørgsel?

  3. Sidste ord i en sætning:I SQL (regulære udtryk muligt?)

  4. Generer datoer mellem datointervaller