Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 열에서 'a\\b'와 같이 백슬래시가 있는 값을 어떻게 일치시킬 수 있습니까?


RLIKE 연산자의 도움으로 이러한 종류의 일치를 수행할 수 있습니다. 유일한 개념은 MySQL 쿼리에서 많은 백슬래시를 사용하는 것입니다. 아래의 예를 보면 더 명확해집니다 -

다음 표에는 'a\b' 및 '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)

이제 'a\\b' 값을 일치시키려면 8개의 백슬래시를 작성해야 한다고 가정합니다. 두 번째 백슬래시는 첫 번째 백슬래시로 이스케이프되지 않기 때문에 2리터를 비교하려면 백슬래시를 두 배로 늘려야 하지만 MySQL 문자열에서 이러한 문자열에 대한 테이블을 쿼리할 때 이 두 배는 클라이언트에서 한 번, 클라이언트에서 한 번 발생합니다. 데이터베이스. 따라서 아래 쿼리에서와 같이 네 번 백슬래시를 사용해야 합니다. -

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)