sql >> Database >  >> RDS >> MariaDB

MariaDB LENGTHB() uitgelegd

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

Syntaxis

De syntaxis gaat als volgt:

LENGTHB(str)

Waar str is de tekenreeks waarvoor de lengte wordt geretourneerd.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT LENGTHB('café');

Resultaat:

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

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

Vergelijking met CHAR_LENGTH() en BIT_LENGTH()

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

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

Resultaat:

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

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

CHAR_LENGTH() retourneert 1 , omdat het nog steeds maar een enkel teken is, 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 LENGTHB(1234);

Resultaat:

+---------------+
| LENGTHB(1234) |
+---------------+
|             4 |
+---------------+

Nullargumenten

Doorgeven van null retourneert null :

SELECT LENGTHB(null);

Resultaat:

+---------------+
| LENGTHB(null) |
+---------------+
|          NULL |
+---------------+

Ontbrekend argument

LENGTHB() . aanroepen zonder een argument door te geven resulteert in een fout:

SELECT LENGTHB();

Resultaat:

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

LENGTHB() vs LENGTH()

De LENGTHB() functie is vergelijkbaar met de LENGTH() functie, behalve hoe het werkt in Oracle-modus.

De LENGTHB() functie werkt op dezelfde manier, ongeacht in welke modus deze zich bevindt (d.w.z. het geeft het aantal bytes in de string terug).

LENGTH() aan de andere kant, gedraagt ​​zich anders, afhankelijk van of het in Oracle-modus of standaardmodus is.

In het bijzonder, in de standaardmodus, LENGTH() meet de string in bytes. Maar in Oracle-modus meet het de string in tekens .


  1. Hoe maak je een extensie niet verplaatsbaar?

  2. Grondbeginselen van tabeluitdrukkingen, deel 5 – CTE's, logische overwegingen

  3. Hoe gegevens ophalen uit een SQL Server-database in C#?

  4. Controleer of de tabel bestaat en als deze niet bestaat, maak deze dan aan in SQL Server 2008