ใช้ Regular Expression (REGEXP) เพื่อดึงแถวที่ตัวอักษรแรกไม่ใช่ตัวอักษรหรือตัวเลข
รูปแบบ Regular Expression
- กรณีที่ 1 - เริ่มต้นด้วยตัวเลข:
REGEXP '^[0-9]' - กรณีที่ 2 - เริ่มต้นด้วยอักขระไม่ใช่ alphanumeric:
REGEXP '^[^0-9A-Za-z]'
ตัวอย่างการใช้งาน
สร้างตารางรหัสผ่าน:
mysql> CREATE TABLE getRowsFirstNotAlphanumeric ( Id INT NOT NULL AUTO_INCREMENT, UserPassword VARCHAR(20), PRIMARY KEY(Id) );
เพิ่มข้อมูล (ผสมตัวอักษร ตัวเลข สัญลักษณ์):
INSERT INTO getRowsFirstNotAlphanumeric(UserPassword) VALUES('@123456'),('#7666666'),('98876Carol'),('$12345Carol'),('%David567'),('123456Larry'),('909Robert'),('3333Maxwell'),('_123456Bob'),('5767676Chris'),('(88883Mike');
กรณีที่ 1: ดึงแถวที่เริ่มต้นด้วยตัวเลข (0-9)
mysql> SELECT * FROM getRowsFirstNotAlphanumeric WHERE UserPassword REGEXP '^[0-9]';
+----+--------------+ | Id | UserPassword | +----+--------------+ | 3 | 98876Carol | | 6 | 123456Larry | | 7 | 909Robert | | 8 | 3333Maxwell | | 10 | 5767676Chris | +----+--------------+ 5 rows
กรณีที่ 2: ดึงแถวที่เริ่มต้นด้วยอักขระไม่ใช่ alphanumeric
mysql> SELECT * FROM getRowsFirstNotAlphanumeric WHERE UserPassword REGEXP '^[^0-9A-Za-z]';
+----+--------------+ | Id | UserPassword | +----+--------------+ | 1 | @123456 | | 2 | #7666666 | | 4 | $12345Carol | | 5 | %David567 | | 9 | _123456Bob | | 11 | (88883Mike | +----+--------------+ 6 rows
Regex ^[^0-9A-Za-z] หมายถึง ตัวอักษรแรก (^) ไม่ใช่ (^) ตัวเลข 0-9 หรือตัวอักษร A-Z, a-z