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

HAMMING_DISTANCE

::: note Начиная с 4.1.2 :::

Описание​

Функция HAMMING_DISTANCE возвращает количество позиций, в которых различаются две строки.

Эта функция сравнивает строки по символам UTF-8, а не по байтам. Обе входные строки должны содержать одинаковое количество символов UTF-8. При сравнении учитывается регистр.

Синтаксис​

HAMMING_DISTANCE(<str1>, <str2>)

Параметры​

ПараметрОписание
<str1>Первая строка для сравнения.
<str2>Вторая строка для сравнения.

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

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

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

  • Если хотя бы один из аргументов равен NULL, возвращается NULL.
  • Если оба аргумента — пустые строки, возвращается 0.
  • Если строки содержат разное количество символов UTF-8, возвращается ошибка.

Примеры​

  1. Сравнение двух строк ASCII одинаковой длины.
SELECT hamming_distance('karolin', 'kathrin') AS distance;
+----------+
| distance |
+----------+
| 3 |
+----------+
  1. Сравнение двух строк UTF-8. Строки содержат одинаковое количество символов и различаются только одним символом.
SELECT hamming_distance('数据库', '数据仓') AS distance;
+----------+
| distance |
+----------+
| 1 |
+----------+
  1. Сравнение строк, различающихся только регистром букв.
SELECT hamming_distance('Doris', 'doris') AS distance;
+----------+
| distance |
+----------+
| 1 |
+----------+
  1. Если входное значение равно NULL, возвращается NULL.
SELECT hamming_distance(NULL, 'abc') AS distance;
+----------+
| distance |
+----------+
| NULL |
+----------+