MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak CHAR_LENGTH() działa w MariaDB

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() .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przenoszenie bazy danych MariaDB do stanów zaszyfrowanych i nieszyfrowanych

  2. 4 funkcje zwracające miesiąc z daty w MariaDB

  3. Uwagi dotyczące szyfrowania danych w spoczynku dla MariaDB

  4. Łatwe tworzenie zapory SQL dzięki ClusterControl i ProxySQL

  5. Wprowadzenie do administracji MaxScale Korzystanie z maxctrl dla klastra MariaDB