如何在 MySQL 中查找非 ASCII 字符?
mysqlmysqli database
非 ASCII 字符包括磅号 (£)、商标符号、加减号等字符。要从表中查找非 ASCII 字符,需要执行以下步骤 −
首先,使用 create 命令创建一个表,如下所示 −
mysql> CREATE table NonASciiDemo -> ( -> NonAScii varchar(100) -> ); Query OK, 0 rows impacted (0.61 sec)
之后,使用 insert 命令将记录插入表中,如下所示 −
mysql> INSERT into NonASciiDemo values('-,-'); Query OK, 1 row affected (0.18 sec) mysql> INSERT into NonASciiDemo values(' '); Query OK, 1 row affected (0.23 sec) mysql> INSERT into NonASciiDemo values('£'); Query OK, 1 row affected (0.30 sec) mysql> INSERT into NonASciiDemo values('123abcd£'); Query OK, 1 row affected (0.24 sec)
如上所示,表中插入了四条记录,其中两条记录包含非 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)