Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 ASCII가 아닌 문자를 찾으려면 어떻게 해야 합니까?

<시간/>

ASCII가 아닌 문자는 파운드 기호(£), 상표 기호, plusminussymbol 등과 같은 문자입니다. 표에서 ASCII가 아닌 문자를 찾으려면 다음 단계가 필요합니다. -

먼저 다음과 같이 주어진 create 명령의 도움으로 테이블이 생성됩니다 -

mysql> CREATE table NonASciiDemo
-> (
-> NonAScii varchar(100)
-> );
Query OK, 0 rows affected (0.61 sec)

그 후 레코드는 다음과 같은 삽입 명령을 사용하여 테이블에 삽입됩니다. -

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)

4개의 레코드가 위와 같이 테이블에 삽입되며, 2개의 레코드에는 ASCII가 아닌 문자가 포함되고 2개의 레코드에는 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)