ใช้ REGEXP เพื่อกรองเฉพาะแถวที่มีตัวอักษรที่ไม่ใช่ตัวเลข (คือ ไม่ใช่ตัวเลขอย่างเดียว)
ตัวอย่างการใช้งาน
1. สร้างตารางและข้อมูลผสม
mysql> create table DemoTable (ClientCode varchar(100));
mysql> insert into DemoTable values('Chris902'), ('Robert_'), ('903'), ('123_David');
2. Query เลือกเฉพาะที่มีตัวอักษร/อักขระพิเศษ (ไม่ใช่ตัวเลขอย่างเดียว)
mysql> SELECT * FROM DemoTable WHERE ClientCode REGEXP '.*[^0-9].*';
ผลลัพธ์ (ตัด 903 ออก)
+------------+ | ClientCode | +------------+ | Chris902 | | Robert_ | | 123_David | +------------+
คำอธิบาย REGEXP Pattern
.*- ตัวอักษรใดๆ จำนวน 0 ขึ้นไป[^0-9]- ตัวอักษรที่ ไม่ใช่ 0-9 (Negated Character Class).*- ตัวอักษรใดๆ จำนวน 0 ขึ้นไป- รวมกัน: "มีตัวอักษรอย่างน้อย 1 ตัวที่ไม่ใช่ตัวเลข"
รูปแบบ REGEXP อื่นที่มีประโยชน์
| Pattern | ความหมาย |
|---|---|
^[0-9]+$ | เป็นตัวเลขอย่างเดียว (Start to End) |
^[^0-9]+$ | ไม่มีตัวเลขเลย |
^[0-9]{3,}$ | ตัวเลขอย่างน้อย 3 หลัก |
^[A-Za-z]+$ | เป็นตัวอักษรอังกฤษอย่างเดียว |
ลบแถวที่เป็นตัวเลขอย่างเดียว
DELETE FROM DemoTable WHERE ClientCode REGEXP '^[0-9]+$';