sql >> Databasteknik >  >> RDS >> MariaDB

Hur BIT_LENGTH() fungerar i MariaDB

I MariaDB, BIT_LENGTH() är en inbyggd strängfunktion som returnerar längden på det givna strängargumentet i bitar.

Du anger strängen som ett argument när du anropar funktionen.

Syntax

Syntaxen ser ut så här:

BIT_LENGTH(str)

Där str är strängen.

Exempel

Här är ett enkelt exempel:

SELECT BIT_LENGTH('A');

Resultat:

+-----------------+
| BIT_LENGTH('A') |
+-----------------+
|               8 |
+-----------------+

Vi kan se att bokstaven A är 8 bitar lång (dvs. 1 byte).

Här är ett exempel som använder tecken som är längre än 1 byte:

SELECT 
    BIT_LENGTH('©'),
    BIT_LENGTH('ไ'),
    BIT_LENGTH('ม้');

Resultat:

+------------------+-------------------+----------------------+
| BIT_LENGTH('©')  | BIT_LENGTH('ไ')   | BIT_LENGTH('ม้')      |
+------------------+-------------------+----------------------+
|               16 |                24 |                   48 |
+------------------+-------------------+----------------------+

Den andra och tredje strängen är thailändska tecken. Den tredje strängen använder ett diakritiskt tecken, vilket slutar med att antalet returnerade bitar fördubblas.

Här är karaktären med och utan det diakritiska teckenet:

SELECT
    BIT_LENGTH('ม้'),
    BIT_LENGTH('ม');

Resultat:

+----------------------+-------------------+
| BIT_LENGTH('ม้')     | BIT_LENGTH('ม')    |
+----------------------+-------------------+
|                   48 |                24 |
+----------------------+-------------------+

Fel argumenttyp

Om argumentet inte är en sträng kommer det att konverteras till sträng.

Exempel:

SELECT 
    BIT_LENGTH(1),
    BIT_LENGTH(12),
    BIT_LENGTH(123);

Resultat:

+---------------+----------------+-----------------+
| BIT_LENGTH(1) | BIT_LENGTH(12) | BIT_LENGTH(123) |
+---------------+----------------+-----------------+
|             8 |             16 |              24 |
+---------------+----------------+-----------------+

Nollargument

Skickar null returnerar null :

SELECT BIT_LENGTH(null);

Resultat:

+------------------+
| BIT_LENGTH(null) |
+------------------+
|             NULL |
+------------------+

Argument saknas

Anropar BIT_LENGTH() utan att skicka ett argument resulterar det i ett fel:

SELECT BIT_LENGTH();

Resultat:

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

  1. Mappning av PostgreSQL-text[][]-typ och Java-typ

  2. SKAPA Oracle-procedur

  3. Försök att öppna ett redan stängt objekt sqlitedatabase

  4. SQL Server 2016 :Tillgänglighetsgruppförbättringar