首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MySQL中查找非ASCII码字符?

如何在MySQL中查找非ASCII码字符?
EN

Stack Overflow用户
提问于 2008-12-30 22:54:57
回答 8查看 129.6K关注 0票数 139

我正在使用一个包含一些从Excel导入的数据的MySQL数据库。数据包含非ASCII字符(破折号等)以及隐藏回车符或换行符。有没有办法使用MySQL找到这些记录?

EN

回答 8

Stack Overflow用户

发布于 2012-07-31 21:33:13

MySQL提供了全面的字符集管理,可以帮助解决此类问题。

代码语言:javascript
复制
SELECT whatever
  FROM tableName 
 WHERE columnToCheck <> CONVERT(columnToCheck USING ASCII)

CONVERT(col USING charset)函数将无法转换的字符转换为替换字符。然后,转换的文本和未转换的文本将是不相等的。

请参阅此以了解更多讨论。https://dev.mysql.com/doc/refman/8.0/en/charset-repertoire.html

您可以使用您希望的任何字符集名称来代替ASCII。例如,如果您想要找出哪些字符在代码页1257 (立陶宛、拉脱维亚、爱沙尼亚)中不能正确呈现,请使用CONVERT(columnToCheck USING cp1257)

票数 276
EN

Stack Overflow用户

发布于 2009-08-09 22:58:56

可以将ASCII定义为十进制值为0- 127 (0x00 - 0x7F)的所有字符,并使用以下查询查找包含非ASCII字符的列

代码语言:javascript
复制
SELECT * FROM TABLE WHERE NOT HEX(COLUMN) REGEXP '^([0-7][0-9A-F])*$';

这是我能想到的最全面的查询。

票数 92
EN

Stack Overflow用户

发布于 2009-03-12 16:00:08

这可能就是你要找的:

代码语言:javascript
复制
select * from TABLE where COLUMN regexp '[^ -~]';

它应返回列中包含非ASCII字符(或不可打印的ASCII字符,如换行符)的所有行。

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/401771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档