ใช้ REGEXP '[[:digit:]]$' เพื่อค้นหาแถวที่คอลัมน์ลงท้ายด้วยตัวเลข
ไวยากรณ์
SELECT * FROM yourTableName WHERE yourColumnName REGEXP '[[:digit:]]$';
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> create table StringEndsWithNumber (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserId varchar(20),
-> UserName varchar(20)
-> );
Query OK, 0 rows affected (0.62 sec)
เพิ่มข้อมูล (UserId บางตัวลงท้ายตัวเลข บางตัวไม่):
mysql> insert into StringEndsWithNumber(UserId,UserName) values('123User','John');
mysql> insert into StringEndsWithNumber(UserId,UserName) values('User456','Larry');
mysql> insert into StringEndsWithNumber(UserId,UserName) values('User789','John');
mysql> insert into StringEndsWithNumber(UserId,UserName) values('0981User','Carol');
mysql> insert into StringEndsWithNumber(UserId,UserName) values('User999','Bob');
mysql> insert into StringEndsWithNumber(UserId,UserName) values('User1290','David');
mysql> insert into StringEndsWithNumber(UserId,UserName) values('User456','James');
ข้อมูลทั้งหมด:
+----+----------+----------+ | Id | UserId | UserName | +----+----------+----------+ | 1 | 123User | John | | 2 | User456 | Larry | | 3 | User789 | John | | 4 | 0981User | Carol | | 5 | User999 | Bob | | 6 | User1290 | David | | 7 | User456 | James | +----+----------+----------+
ค้นหาที่ลงท้ายตัวเลข:
mysql> SELECT * FROM StringEndsWithNumber WHERE UserId REGEXP '[[:digit:]]$';
ผลลัพธ์ (5 แถว):
+----+----------+----------+ | Id | UserId | UserName | +----+----------+----------+ | 2 | User456 | Larry | | 3 | User789 | John | | 5 | User999 | Bob | | 6 | User1290 | David | | 7 | User456 | James | +----+----------+----------+
แถวที่ 1 (123User) และ 4 (0981User) ไม่ถูกเลือก เพราะลงท้ายตัวอักษร
Regular Expression Patterns อื่นๆ
^[[:digit:]]- เริ่มต้นด้วยตัวเลข[[:digit:]]- มีตัวเลขอยู่ที่ไหนก็ได้^[[:alpha:]]- เริ่มต้นด้วยตัวอักษร