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

ค้นหาสตริงเฉพาะใน MySQL ด้วย Regular Expression

บทความนี้สาธิตการใช้ REGEXP พร้อม Pattern [0-9]{11} เพื่อค้นหาแถวที่มีตัวเลข 11 หลักในคอลัมน์ TEXT

สร้างตารางและข้อมูลทดสอบ

mysql> CREATE TABLE DemoTable649 (Value TEXT);
Query OK, 0 rows affected (0.68 sec)

mysql> INSERT INTO DemoTable649 VALUES('1903');
mysql> INSERT INTO DemoTable649 VALUES('9321010');
mysql> INSERT INTO DemoTable649 VALUES('983032023393');
mysql> INSERT INTO DemoTable649 VALUES('1234567892');
mysql> INSERT INTO DemoTable649 VALUES('989898989');

คิวรีค้นหาสตริงที่มีตัวเลข 11 หลัก

mysql> SELECT * FROM DemoTable649 WHERE Value REGEXP '[0-9]{11}';

ผลลัพธ์

+--------------+
| Value        |
+--------------+
| 983032023393 |
+--------------+

คำอธิบาย Pattern:

  • [0-9] - ตัวเลข 0-9
  • {11} - จำนวน 11 ตัวติดต่อกัน
  • มีเพียง '983032023393' (12 หลัก) ที่ตรงเงื่อนไข (มี substring 11 หลัก)

หมายเหตุ: REGEXP ใน MySQL จะค้นหา Pattern ที่ปรากฏในส่วนใดส่วนหนึ่งของสตริง ไม่จำเป็นต้องตรงทั้งสตริง