Перейти к содержимому
Последнее обновление

CHAR_LENGTH

Описание​

Функция CHAR_LENGTH вычисляет количество символов (не байтов) в строке. Для многобайтовых символов (например, китайских иероглифов) она возвращает количество символов.

В настоящее время поддерживается только кодировка UTF-8.

Псевдоним​

  • CHARACTER_LENGTH

Синтаксис​

CHAR_LENGTH(<str>)

Параметры​

ПараметрОписание
<str>Строка, для которой требуется вычислить количество символов. Тип: VARCHAR

Возвращаемое значение​

Возвращает значение типа INT, представляющее количество символов в строке.

Особые случаи:

  • Если параметр равен NULL, возвращает NULL
  • Для пустой строки возвращает 0
  • Каждый многобайтовый символ UTF-8 считается за 1 символ

Примеры​

  1. Английские символы
SELECT CHAR_LENGTH('hello');
+----------------------+
| char_length('hello') |
+----------------------+
| 5 |
+----------------------+
  1. Китайские иероглифы (каждый китайский иероглиф считается одним символом)
SELECT CHAR_LENGTH('中国');
+----------------------+
| char_length('中国') |
+----------------------+
| 2 |
+----------------------+
  1. Обработка значения NULL
SELECT CHAR_LENGTH(NULL);
+--------------------+
| char_length(NULL) |
+--------------------+
| NULL |
+--------------------+
  1. Сравнение с функцией LENGTH (LENGTH возвращает количество байтов)
SELECT CHAR_LENGTH('中国') AS char_len, LENGTH('中国') AS byte_len;
+----------+----------+
| char_len | byte_len |
+----------+----------+
| 2 | 6 |
+----------+----------+