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

Come funziona OCTET_LENGTH() in MariaDB

In MariaDB, OCTET_LENGTH() è una funzione stringa incorporata che restituisce la lunghezza dell'argomento stringa specificato, misurata in ottetti (byte).

OCTET_LENGTH() è sinonimo di LENGTHB() .

È anche sinonimo di LENGTH() quando non in modalità Oracle (LENGTH() si comporta diversamente in modalità Oracle).

Sintassi

La sintassi è questa:

OCTET_LENGTH(str)

Dove str è la stringa per la quale verrà restituita la lunghezza.

Esempio

Ecco un esempio di base:

SELECT OCTET_LENGTH('café');

Risultato:

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

In questo caso, la stringa era lunga quattro caratteri, ma OCTET_LENGTH() restituito 5 . Questo perché l'ultimo carattere utilizza due ottetti/byte.

Confronto con CHAR_LENGTH() e BIT_LENGTH()

Ecco un rapido confronto tra OCTET_LENGTH() , CHAR_LENGTH() (che restituisce il numero di caratteri nella stringa) e BIT_LENGTH() (che restituisce il numero di bit nella stringa):

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

Risultato:

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

Questo carattere tailandese ( ) utilizza 3 byte, e quindi OCTET_LENGTH() restituisce 3 .

CHAR_LENGTH() restituisce il numero di caratteri (1 ), e BIT_LENGTH() restituisce il numero di bit (24 ).

Non stringhe

Se l'argomento non è una stringa, viene convertito in una stringa.

Ecco un altro esempio che utilizza un numero:

SELECT OCTET_LENGTH(1234);

Risultato:

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

Argomenti nulli

Passaggio null restituisce null :

SELECT OCTET_LENGTH(null);

Risultato:

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

Argomento mancante

Chiamando OCTET_LENGTH() senza passare un argomento si ottiene un errore:

SELECT OCTET_LENGTH();

Risultato:

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