รูปแบบ Regex สำหรับตัวเลข
ใน MySQL ใช้ REGEXP (หรือ RLIKE) สำหรับ Pattern Matching:
SELECT * FROM yourTableName WHERE yourColumnName REGEXP '[0-9]';
ตัวอย่างการใช้งาน
mysql> CREATE TABLE DemoTable1841 (
Code VARCHAR(20)
);
mysql> INSERT INTO DemoTable1841 VALUES('John231');
mysql> INSERT INTO DemoTable1841 VALUES('19876Sam');
mysql> INSERT INTO DemoTable1841 VALUES('Carol');
mysql> INSERT INTO DemoTable1841 VALUES('67474');
ค้นหาแถวที่มีตัวเลข
mysql> SELECT * FROM DemoTable1841 WHERE Code REGEXP '[0-9]';
ผลลัพธ์ (เฉพาะ Carol ที่ไม่มีตัวเลข):
+----------+
| Code |
+----------+
| John231 |
| 19876Sam |
| 67474 |
+----------+
Pattern Regex ที่น่าสนใจ
| Pattern | ความหมาย |
|---|---|
[0-9] | มีตัวเลขอย่างน้อย 1 ตัว |
^[0-9]+$ | เป็นตัวเลขทั้งหมด (Integer) |
[0-9]{3} | มีตัวเลขติดกัน 3 ตัว |
^[0-9]{1,3}$ | ตัวเลข 1-3 หลัก |
[0-9]+\\.[0-9]+ | รูปแบบทศนิยม |
หมายเหตุ
- MySQL ใช้ POSIX Regex (ไม่รองรับ
\\dต้องใช้[0-9]) REGEXPไม่สนใจ Case-sensitive โดยค่าเริ่มต้น- ใช้
REGEXP BINARYเพื่อ Case-sensitive - MySQL 8.0+ รองรับ
REGEXP_REPLACE,REGEXP_SUBSTRใหม่ๆ