W MariaDB, LENGTHB() jest wbudowaną funkcją łańcuchową, która zwraca długość podanego argumentu łańcuchowego, mierzoną w bajtach.
Składnia
Składnia wygląda tak:
LENGTHB(str)
Gdzie str to ciąg, dla którego zostanie zwrócona długość.
Przykład
Oto podstawowy przykład:
SELECT LENGTHB('café'); Wynik:
+------------------+
| LENGTHB('café') |
+------------------+
| 5 |
+------------------+
W tym przypadku ciąg miał cztery znaki, ale LENGTHB() zwrócono 5 . Dzieje się tak, ponieważ ostatni znak zajmuje dwa bajty.
Porównanie z CHAR_LENGTH() i BIT_LENGTH()
Oto szybkie porównanie między LENGTHB() , CHAR_LENGTH() (co zwraca liczbę znaków w ciągu) i BIT_LENGTH() (co zwraca liczbę bitów w ciągu):
SELECT
LENGTHB('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ'); Wynik:
+----------------+--------------------+-------------------+
| LENGTHB('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') |
+----------------+--------------------+-------------------+
| 3 | 1 | 24 |
+----------------+--------------------+-------------------+
Ten znak tajski (อ ) używa 3 bajtów, a zatem LENGTHB() zwraca 3 .
CHAR_LENGTH() zwraca 1 , ponieważ to wciąż tylko jeden znak, a BIT_LENGTH() zwraca liczbę bitów (24 ).
Nie-Strunowe
Jeśli argument nie jest łańcuchem, jest konwertowany na łańcuch.
Oto kolejny przykład z liczbą:
SELECT LENGTHB(1234); Wynik:
+---------------+ | LENGTHB(1234) | +---------------+ | 4 | +---------------+
Argumenty zerowe
Przekazywanie null zwraca null :
SELECT LENGTHB(null); Wynik:
+---------------+ | LENGTHB(null) | +---------------+ | NULL | +---------------+
Brakujący argument
Wywołanie LENGTHB() bez przekazania argumentu powoduje błąd:
SELECT LENGTHB(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTHB'
LENGTHB() vs LENGTH()
LENGTHB() funkcja jest podobna do LENGTH() funkcja, z wyjątkiem tego, jak działa w trybie Oracle.
LENGTHB() funkcja działa w ten sam sposób, niezależnie od tego, w jakim trybie się znajduje (tzn. zwraca liczbę bajtów w ciągu).
LENGTH() z drugiej strony zachowuje się inaczej, w zależności od tego, czy jest w trybie Oracle, czy w trybie domyślnym.
W szczególności w trybie domyślnym LENGTH() mierzy ciąg w bajtach. Ale w trybie Oracle mierzy ciąg w znakach .