@sergyx

Сравнение строк, содержащих похожие по написанию символы из разных алфавитов?

Можно ли в mysql настроить сравнение строк таким образом, чтобы эти строки считались равными, если они визуально идентичны, хотя и состоят из символов из разных алфавитов?

Например, считать все следующие строки равными.
"XYZ" - латинское "икс", латинское "игрек", латинское "зэд"
"ХYZ" - русское "ха", латинское "игрек", латинское "зэд"
"XYZ" - латинское "икс", русское "у", латинское "зэд"
"ХУZ" - русское "ха", русское "у", латинское "зэд"

Т.е., можно ли задать на каком-то уровне (таблицы/запроса, etc) таблицу равенства
Y=У (игрек расно у)
X=Х (икс равно ха)
И произвести запрос SELECT field FROM table WHERE field = "xyz" который бы из таблицы
--------
| field |
--------
| XYZ |
| ХYZ |
| XYZ |
| ХУZ |
| ABC |
--------
Вывел
XYZ 
ХYZ 
XYZ 
ХУZ

Где, строки XYZ, как уже сказано, выглядят идентично только визуально, а на само деле, состоят из символов из разных алфавитов.
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ответы на вопрос 1
ivankomolin
@ivankomolin
Стандартными средствами такое не получится.
Необходимо написать свою функцию либо в mysql либо в приложении, которая может приводить эти значения к одинаковому виду путем сопоставления.
А использовать ее потом примерно так:
SELECT field FROM table WHERE field = MAP("xyz")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы