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

MySQL LIKE ไม่ทำงานกับสตริงที่มีจุด ใช้ REGEXP แทน

ใช้ REGEXP สำหรับค้นหาสตริงที่มีจุด (.)

จุด (.) ใน LIKE เป็นตัวแทนตัวอักษรใดๆ ต้องใช้ REGEXP แทน

สร้างตารางและเพิ่มข้อมูลเวอร์ชัน

mysql> create table DemoTable ( GameReleaseVersion varchar(20) ); 
Query OK, 0 rows affected (0.57 sec)
mysql> insert into DemoTable values('19.6'); 
Query OK, 1 row affected (0.15 sec) 
mysql> insert into DemoTable values('18.4'); 
Query OK, 1 row affected (0.16 sec) 
mysql> insert into DemoTable values('17.6'); 
Query OK, 1 row affected (0.12 sec) 
mysql> insert into DemoTable values('19.5'); 
Query OK, 1 row affected (0.14 sec)

คิวรี่ค้นหาเวอร์ชันขึ้นต้นด้วย 19. ตามด้วยตัวเลข

mysql> select * from DemoTable where GameReleaseVersion regexp '^19\.[0-9]+$';

ผลลัพธ์

+--------------------+ 
| GameReleaseVersion | 
+--------------------+ 
| 19.6               | 
| 19.5               | 
+--------------------+ 
2 rows in set (0.15 sec)

Regex แบบแยก: ^19 = เริ่มด้วย 19 | \. = จุดตัวจริง (escape) | [0-9]+ = ตัวเลข 1 หลักขึ้นไป | $ = จบสตริง