首页 > 解决方案 > 从 MySQL Select 字符串中删除 Cyrillic 文本

问题描述

最近我遇到了 MySQL 查询的一些问题。我有包含多种语言记录的表。例如,列是 ID 和描述。它有这样的数据 1 与 Кирилица 的测试; 2 不使用西里尔字母进行测试。我需要从 Select 查询中删除所有西里尔符号。选择答案必须类似于 1 test with;2 Test without Cyrillic。似乎我需要使用 Select Replace 查询,但是否可以比在查询中替换 66 个字符的标题字母和小写字母更快。我试过类似的东西。但这当然行不通。希望得到 MySQL 大师的帮助。感谢您的关注

SELECT id,SUBSTRING_INDEX(title, REGEXP "[а-яА-Я]", 1)
FROM Test

标签: mysql

解决方案


AFAIK 没有比这更快的方法了

SELECT id, REGEXP_REPLACE(title, '[Ѐ-ӿ]+', '') AS title FROM test;

小提琴

"Ѐ""ӿ"分别是 Unicode Cyrillic 块的第一个和最后一个字符。如果使用[а-яА-Я],您可能会错过俄语以外语言的西里尔字母,甚至是俄语 Ё。)


推荐阅读