Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để đối sánh các giá trị có dấu gạch chéo ngược, như ‘a \\ b’, từ cột MySQL?


Với sự trợ giúp của toán tử RLIKE, chúng ta có thể thực hiện kiểu so khớp như vậy. Khái niệm duy nhất về việc sử dụng một số dấu gạch chéo ngược trong truy vấn MySQL. Ví dụ dưới đây sẽ làm rõ hơn -

Chúng ta có bảng sau có các giá trị như ‘a \ b’ và ‘a \\ b’.

mysql> select * from backslashes;
+------+-------+
| Id   | Value |
+------+-------+
|    1 | 200   |
|    2 | 300   |
|    4 | a\\b  |
|    3 | a\b   |
+------+-------+
4 rows in set (0.10 sec)

Bây giờ, giả sử nếu chúng ta muốn so khớp giá trị ‘a \\ b’ thì chúng ta cần viết tám dấu gạch chéo ngược. Đó là bởi vì dấu gạch chéo ngược thứ hai không được thoát bởi dấu gạch chéo ngược thứ nhất, vì vậy để so sánh hai lít, chúng ta cần phải nhân đôi dấu gạch chéo ngược nhưng khi chúng ta đang truy vấn một bảng cho chuỗi đó từ chuỗi MySQL thì việc nhân đôi này xảy ra hai lần một lần trong máy khách và một lần trong kho dữ liệu. Do đó, chúng ta cần sử dụng bốn lần dấu gạch chéo ngược như đã thực hiện trong các truy vấn bên dưới -

mysql> Select * from backslashes where value RLIKE 'a\\\\\\\\b';
+------+-------+
| Id   | Value |
+------+-------+
|    4 | a\\b  |
+------+-------+
1 row in set (0.00 sec)

mysql> Select * from backslashes where value RLIKE 'a\\\\b';
+------+-------+
| Id   | Value |
+------+-------+
|    3 | a\b   |
+------+-------+
1 row in set (0.01 sec)