首页 > 解决方案 > sql脚本从脚本中获取英文文本

问题描述

我有一个包含英文和中文文本的专栏。

例:山上有眼睛。隔山有眼

预期结果:山上有眼睛。

请问如何使用sql从该字符串中提取英文文本。

感谢帮助。

标签: mysqlsql

解决方案


一种快速而简单的方法只是将字符串转换为 ASCII 并删除'?'-- 这是其他字符的表示:

select replace(convert(t.str using ascii), '?', '')
from t;

唯一的缺点是您也会丢失'?'原始字符串中的字符。

是一个 db<>fiddle。

要更好地控制替换,您可以使用regexp_replace()

select regexp_replace(t.str, '[^a-zA-Z0-9.?, ]', '')
from t;

不幸的是,我不知道纯 ASCII 字符的字符类。


推荐阅读