Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีค้นหาตัวอักษร Non-ASCII ใน MySQL


ตัวอักษร Non-ASCII เช่น สัญลักษณ์ปอนด์ (£), trademark, plus-minus สามารถค้นหาได้ด้วยฟังก์ชัน HEX() และ REGEXP

สร้างตารางและเพิ่มข้อมูล:

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)

แสดงทั้งหมด:

SELECT * FROM NonASciiDemo;
+----------+
| NonAScii |
+----------+
| -,-      |
|          |
| £        |
| 123abcd£ |
+----------+

Query ค้นหา Non-ASCII

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

ผลลัพธ์ (เฉพาะแถวที่มี £):

+----------+
| NonAScii |
+----------+
| £        |
| 123abcd£ |
+----------+

อธิบาย: HEX() แปลงเป็น Hexadecimal, REGEXP '^([0-7][0-9A-F])*$' ตรวจสอบว่าเป็น ASCII เท่านั้น (0-7F) NOT จะกลับกันคือ Non-ASCII