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

ดึงแถวที่ตัวอักษรแรกไม่ใช่ alphanumeric ใน MySQL


ใช้ 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