W MariaDB, CHAR_LENGTH() to wbudowana funkcja łańcuchowa, która zwraca długość podanego argumentu łańcuchowego, mierzoną w znakach.
Składnia
Składnia wygląda tak:
CHAR_LENGTH(str)
Gdzie str to ciąg, dla którego zostanie zwrócona długość.
Przykład
Oto podstawowy przykład:
SELECT CHAR_LENGTH('Splash'); Wynik:
+-----------------------+
| CHAR_LENGTH('Splash') |
+-----------------------+
| 6 |
+-----------------------+ Znaki wielobajtowe
CHAR_LENGTH() funkcja liczy każdy znak jako pojedynczy znak, niezależnie od tego, ile bajtów używa. Dlatego znaki, które używają dwóch, trzech, a nawet czterech bajtów, będą nadal liczone jako jeden znak.
Jest to w przeciwieństwie do funkcji takich jak LENGTH() , który zwraca liczbę bajtów (chyba że jest w trybie Oracle, w takim przypadku robi to samo co CHAR_LENGTH() – zwraca liczbę znaków). Jest to również w przeciwieństwie do funkcji takich jak BIT_LENGTH() który zwraca liczbę bitów w ciągu.
Oto przykład porównujący te funkcje:
SELECT
CHAR_LENGTH('©'),
LENGTH('©'),
BIT_LENGTH('©'); Wynik:
+-------------------+--------------+------------------+
| CHAR_LENGTH('©') | LENGTH('©') | BIT_LENGTH('©') |
+-------------------+--------------+------------------+
| 1 | 2 | 16 |
+-------------------+--------------+------------------+
Symbol praw autorskich (© ) używa dwóch bajtów. CHAR_LENGTH() zwraca 1, ponieważ wciąż jest to tylko jeden znak. LENGTH() i BIT_LENGTH() z drugiej strony zwróć odpowiednio liczbę bajtów i bitów.
Ten przykład został wykonany przy użyciu domyślnego SQL_MODE . Jak wspomniano, gdyby był w trybie Oracle, LENGTH() zachowywałby się jak CHAR_LENGTH() i zwrócił 1 .
Argumenty zerowe
Przekazywanie null zwraca null :
SELECT CHAR_LENGTH(null); Wynik:
+-------------------+ | CHAR_LENGTH(null) | +-------------------+ | NULL | +-------------------+
Brakujący argument
Wywołanie CHAR_LENGTH() bez przekazania argumentu powoduje błąd:
SELECT CHAR_LENGTH(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHAR_LENGTH'
Zobacz także CHARACTER_LENGTH() funkcja, która jest synonimem CHAR_LENGTH() .