Ký tự non-ASCII là các ký tự ngoài bảng mã ASCII chuẩn (ví dụ: £, ±, ©...). Sử dụng hàm HEX() kết hợp REGEXP để lọc.
Ví dụ
Tạo bảng NonAsciiDemo:
mysql> CREATE TABLE NonAsciiDemo (NonAscii VARCHAR(100));
mysql> INSERT INTO NonAsciiDemo VALUES(',-'), (' '), ('£'), ('123abcd£');
Dữ liệu:
+----------+ | NonAscii | +----------+ | -,- | | | | £ | | 123abcd£ | +----------+
Truy vấn tìm ký tự non-ASCII
SELECT * FROM NonAsciiDemo WHERE NOT HEX(NonAscii) REGEXP '^([0-7][0-9A-F])*$';
Kết quả (chỉ 2 hàng chứa £):
+----------+ | NonAscii | +----------+ | £ | | 123abcd£ | +----------+
Giải thích Regex
HEX() chuyển chuỗi thành hex. Ký tự ASCII có mã hex từ 00 đến 7F (byte đầu 0-7). Regex '^([0-7][0-9A-F])*$' khớp chuỗi toàn byte ASCII. NOT đảo ngược để tìm chuỗi chứa byte > 7F (non-ASCII).