Последнее обновление
HAMMING_DISTANCE
::: note Начиная с 4.1.2 :::
Описание
Функция HAMMING_DISTANCE возвращает количество позиций, в которых различаются две строки.
Эта функция сравнивает строки по символам UTF-8, а не по байтам. Обе входные строки должны содержать одинаковое количество символов UTF-8. При сравнении учитывается регистр.
Синтаксис
HAMMING_DISTANCE(<str1>, <str2>)
Параметры
| Параметр | Описание |
|---|---|
<str1> | Первая строка для сравнения. |
<str2> | Вторая строка для сравнения. |
Возвращаемое значение
Возвращает значение типа BIGINT, представляющее количество позиций с различающимися символами.
Особые случаи:
- Если хотя бы один из аргументов равен NULL, возвращается NULL.
- Если оба аргумента — пустые строки, возвращается 0.
- Если строки содержат разное количество символов UTF-8, возвращается ошибка.
Примеры
- Сравнение двух строк ASCII одинаковой длины.
SELECT hamming_distance('karolin', 'kathrin') AS distance;
+----------+
| distance |
+----------+
| 3 |
+----------+
- Сравнение двух строк UTF-8. Строки содержат одинаковое количество символов и различаются только одним символом.
SELECT hamming_distance('数据库', '数据仓') AS distance;
+----------+
| distance |
+----------+
| 1 |
+----------+
- Сравнение строк, различающихся только регистром букв.
SELECT hamming_distance('Doris', 'doris') AS distance;
+----------+
| distance |
+----------+
| 1 |
+----------+
- Если входное значение равно NULL, возвращается NULL.
SELECT hamming_distance(NULL, 'abc') AS distance;
+----------+
| distance |
+----------+
| NULL |
+----------+