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

ฉันจะค้นหาอักขระที่ไม่ใช่ ASCII ใน MySQL ได้อย่างไร


อักขระที่ไม่ใช่ ASCII คืออักขระ เช่น สัญลักษณ์ปอนด์ (£) สัญลักษณ์เครื่องหมายการค้า เครื่องหมายบวกลบ เป็นต้น หากต้องการค้นหาอักขระที่ไม่ใช่ ASCII จากตาราง จำเป็นต้องมีขั้นตอนต่อไปนี้ -

ขั้นแรกให้สร้างตารางโดยใช้คำสั่ง create ซึ่งมีดังต่อไปนี้ -

mysql> สร้างตาราง NonASciiDemo-> (-> NonAScii varchar(100)-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)

หลังจากนั้นเร็กคอร์ดจะถูกแทรกลงในตารางโดยใช้คำสั่ง insert ซึ่งมีดังต่อไปนี้ -

mysql> INSERT เป็นค่า NonASciiDemo ('-,-'); Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> INSERT เป็นค่า NonASciiDemo (' '); Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> INSERT เป็นค่า NonASciiDemo ('£'); Query OK, 1 แถวได้รับผลกระทบ (0.30 วินาที) mysql> INSERT เป็นค่า NonASciiDemo ('123abcd £'); Query OK, 1 แถวได้รับผลกระทบ (0.24 วินาที)

มีการแทรกระเบียนสี่รายการลงในตารางดังที่แสดงด้านบน โดยที่ระเบียน 2 รายการมีอักขระที่ไม่ใช่ ASCII และระเบียน 2 รายการมีอักขระ ASCII

ในการแสดงระเบียนทั้งหมด ให้ใช้คำสั่ง select ดังนี้ -

เลือก * จาก NonASciiDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----------+| NonAScii |+----------+| -,- || || £ || 123abcd£ |+----------+4 แถวในชุด (0.00 วินาที)

ไวยากรณ์เพื่อค้นหาอักขระที่ไม่ใช่ ASCII มีดังต่อไปนี้ -

เลือก * จาก yourTableName โดยที่ไม่ได้ HEX(yourColumnName) REGEXP '^([0-7][0-9A-F])*$';

แบบสอบถามเพื่อรับอักขระที่ไม่ใช่ ASCII โดยใช้ไวยากรณ์ข้างต้นจะได้รับดังนี้ -

mysql> เลือก * จาก NonASciiDemo โดยที่ไม่ใช่ HEX(NonAScii) REGEXP '^([0-7][0-9AF])*$';

ต่อไปนี้เป็นผลลัพธ์ของแบบสอบถามข้างต้น -

<ก่อนหน้า>+----------+| NonAScii |+----------+| £ || 123abcd£ |+----------+2 แถวในชุด (0.00 วินาที)