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

วิธีค้นหาเครื่องหมาย underscore (_) ในสตริง MySQL

ใช้ LIKE พร้อมอีสเคป \_ หรือใช้ REGEXP

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

mysql> create table DemoTable ( ClientId varchar(200) );
Query OK, 0 rows affected (0.79 sec)
mysql> insert into DemoTable values('CLI_101');  Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('CLI1110');   Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('_CLI102');   Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('CLI103_');   Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('CLI1111');   Query OK, 1 row affected (0.16 sec)

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

mysql> select * from DemoTable;
+----------+
| ClientId |
+----------+
| CLI_101  |
| CLI1110  |
| _CLI102  |
| CLI103_  |
| CLI1111  |
+----------+

วิธีที่ 1: ใช้ LIKE พร้อม escape

mysql> select * from DemoTable where ClientId LIKE '%\_%';
+----------+
| ClientId |
+----------+
| CLI_101  |
| _CLI102  |
| CLI103_  |
+----------+

วิธีที่ 2: ใช้ REGEXP

mysql> select * from DemoTable where ClientId REGEXP '_';
+----------+
| ClientId |
+----------+
| CLI_101  |
| _CLI102  |
| CLI103_  |
+----------+

ใน LIKE ต้องใช้ \_ เพราะ _ เป็น wildcard แทนตัวอักษรเดี่ยว