Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để tìm các ký tự không phải ASCII trong MySQL?

Các ký tự không phải ASCII là các ký tự như ký hiệu bảng Anh (£), ký hiệu nhãn hiệu, plusminussymbol, v.v. Để tìm các ký tự không phải ASCII từ bảng, cần thực hiện các bước sau -

Đầu tiên, một bảng được tạo với sự trợ giúp của lệnh create như sau -

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

Sau đó, các bản ghi được chèn vào bảng với sự trợ giúp của lệnh chèn asfollows -

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)

Bốn bản ghi được chèn vào bảng như được hiển thị ở trên, trong đó hai bản ghi chứa các ký tự ASCII và hai bản ghi chứa các ký tự ASCII.

Để hiển thị tất cả các bản ghi, lệnh select được sử dụng như sau -

SELECT * from NonASciiDemo;

Sau đây là kết quả

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

Cú pháp để tìm các ký tự không phải ASCII được đưa ra như sau -

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

Truy vấn để lấy các ký tự không phải ASCII bằng cú pháp trên được đưa ra như sau -

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

Sau đây là kết quả của truy vấn trên -

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