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

วิธีตรวจสอบว่า String มีตัวเลขใน MySQL

ใช้ Regular Expression (REGEXP) เพื่อตรวจสอบว่าสตริงมีตัวเลข 0-9 หรือไม่

ไวยากรณ์

SELECT * FROM yourTableName 
WHERE yourColumnName REGEXP '[0-9]';

ตัวอย่างการใช้งาน

สร้างตาราง StringContainsNumber:

mysql> CREATE TABLE StringContainsNumber (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Words TEXT,
    -> PRIMARY KEY(Id)
    -> );

เพิ่มข้อมูลทดสอบ:

mysql> INSERT INTO StringContainsNumber(Words) VALUES('He12345llo');
mysql> INSERT INTO StringContainsNumber(Words) VALUES('MySQL is not a programming 4language');
mysql> INSERT INTO StringContainsNumber(Words) VALUES('Java is an object oriented');
mysql> INSERT INTO StringContainsNumber(Words) VALUES('Java does not support 456 multiple inheritance');
mysql> INSERT INTO StringContainsNumber(Words) VALUES('MySQL is a RDBMS 456');

ข้อมูลทั้งหมด

+----+------------------------------------------------+
| Id | Words                                          |
+----+------------------------------------------------+
|  1 | He12345llo                                     |
|  2 | MySQL is not a programming 4language           |
|  3 | Java is an object oriented                     |
|  4 | Java does not support 456 multiple inheritance |
|  5 | MySQL is a RDBMS 456                           |
+----+------------------------------------------------+

คำสั่งค้นหาข้อมูลที่มีตัวเลข

mysql> SELECT * FROM StringContainsNumber 
    -> WHERE Words REGEXP '[0-9]';

ผลลัพธ์ (เฉพาะแถวที่มีตัวเลข)

+----+------------------------------------------------+
| Id | Words                                          |
+----+------------------------------------------------+
|  1 | He12345llo                                     |
|  2 | MySQL is not a programming 4language           |
|  4 | Java does not support 456 multiple inheritance |
|  5 | MySQL is a RDBMS 456                           |
+----+------------------------------------------------+

คำอธิบาย: แถวที่ 3 (Java is an object oriented) ไม่มีตัวเลข จึงไม่แสดงในผลลัพธ์