如何在 MySQL 中找到非 ASCII 字符?

非 ASCII 字符是诸如英镑符号 (£)、商标符号、加减符号等字符。要从表中查找非 ASCII 字符,需要执行以下步骤 -

首先在 create 命令的帮助下创建一个表,如下所示 -

mysql> CREATE table NonASciiDemo
-> (
-> NonAScii varchar(100)
-> );

之后,在插入命令的帮助下将记录插入表中,如下所示 -

mysql> INSERT into NonASciiDemo values('-,-');

mysql> INSERT into NonASciiDemo values('  ');

mysql> INSERT into NonASciiDemo values('£');

mysql> INSERT into NonASciiDemo values('123abcd£');

如上所示,将四条记录插入到表中,其中两条记录包含非 ASCII 字符,两条记录包含 ASCII 字符。

要显示所有记录,使用 select 命令如下 -

SELECT * from NonASciiDemo;

以下是输出

+----------+
| NonAScii |
+----------+
| -,-      |
|          |
| £        |
| 123abcd£ |
+----------+
4 rows in set (0.00 sec)

查找非 ASCII 字符的语法如下 -

SELECT * FROM yourTableName WHERE NOT HEX(yourColumnName) REGEXP '^([0-7][0-
9A-F])*$';

使用上述语法获取非 ASCII 字符的查询如下 -

mysql> SELECT * FROM NonASciiDemo WHERE NOT HEX(NonAScii) REGEXP '^([0-7][0-9AF])*$';

以下是上述查询的输出 -

+----------+
| NonAScii |
+----------+
| £        |
| 123abcd£ |
+----------+
2 rows in set (0.00 sec)