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

MariaDB CHARACTER_LENGTH() Objaśnienie

W MariaDB CHARACTER_LENGTH() jest wbudowaną funkcją łańcuchową, która zwraca długość podanego argumentu łańcuchowego, mierzoną w znakach.

CHARACTER_LENGTH() jest właściwie synonimem CHAR_LENGTH() , więc możesz użyć obu.

Składnia

Składnia wygląda tak:

CHARACTER_LENGTH(str)

Gdzie str to ciąg, dla którego zostanie zwrócona długość.

Przykład

Oto podstawowy przykład:

SELECT CHARACTER_LENGTH('Cat');

Wynik:

+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
|                       3 |
+-------------------------+

W tym przypadku ciąg miał długość trzech znaków, więc otrzymaliśmy 3 .

Nie-Strunowe

Jeśli argument nie jest łańcuchem, jest konwertowany na łańcuch.

Oto kolejny przykład z liczbą:

SELECT CHARACTER_LENGTH(1234);

Wynik:

+------------------------+
| CHARACTER_LENGTH(1234) |
+------------------------+
|                      4 |
+------------------------+

Porównanie z CHAR_LENGTH()

Jak wspomniano, CHARACTER_LENGTH() jest synonimem CHAR_LENGTH() . Oto porównanie z CHAR_LENGTH() :

SELECT 
    CHARACTER_LENGTH(1234),
    CHAR_LENGTH(1234);

Wynik:

+------------------------+-------------------+
| CHARACTER_LENGTH(1234) | CHAR_LENGTH(1234) |
+------------------------+-------------------+
|                      4 |                 4 |
+------------------------+-------------------+

Znaki wielobajtowe

CHARACTER_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 CHARACTER_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 
    CHARACTER_LENGTH('อ'),
    LENGTH('อ'),
    BIT_LENGTH('อ');

Wynik:

+-------------------------+---------------+-------------------+
| CHARACTER_LENGTH('อ')   | LENGTH('อ')   | BIT_LENGTH('อ')   |
+-------------------------+---------------+-------------------+
|                       1 |             3 |                24 |
+-------------------------+---------------+-------------------+

Ten znak tajski ( ) wykorzystuje 3 bajty. CHARACTER_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 CHARACTER_LENGTH() i zwrócił 1 .

Argumenty zerowe

Przekazywanie null zwraca null :

SELECT CHARACTER_LENGTH(null);

Wynik:

+------------------------+
| CHARACTER_LENGTH(null) |
+------------------------+
|                   NULL |
+------------------------+

Brakujący argument

Wywołanie CHARACTER_LENGTH() bez przekazania argumentu powoduje błąd:

SELECT CHARACTER_LENGTH();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CHARACTER_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. 7 opcji włączania potoków (||) jako operatora konkatenacji w MariaDB

  2. Dostrajanie wydajności bazy danych dla MariaDB

  3. Kopie zapasowe baz danych — porównanie MariaDB Mariabackup i Percona Xtrabackup

  4. Jak działa TRUNCATE() w MariaDB

  5. Funkcje numeryczne MariaDB (pełna lista)