MySQL WHERE 및 LIKE 절의 이스케이프 문자
MySQL에서는 WHERE 절에서 백슬래시()와 같은 특수 문자를 검색할 때, 추가 이스케이프가 필요하지 않습니다. 그러나 LIKE 절에는 이중 백슬래시()가 필요합니다. 이는 MySQL이 LIKE 문에서 이스케이프 문자로 를 기본적으로 사용하기 때문입니다.
WHERE 및 LIKE에서 이스케이프 문자가 작동하는 이유와 방법 이해
WHERE 절에서 MySQL은 추가 처리 없이 지정된 값을 열 값과 직접 비교합니다. 따라서 단일 백슬래시()이면 열의 백슬래시 문자와 일치하는 데 충분합니다.
LIKE 절에서 MySQL은 먼저 지정된 패턴에서 모든 백슬래시를 제거합니다. 그런 다음 패턴 일치 프로세스 중에 나머지 백슬래시를 제거합니다. 이 이중 스트리핑 프로세스에는 백슬래시 문자를 이스케이프하고 LIKE 절에서 일치시키려면 이중 백슬래시()가 필요합니다.
예
제공된 SQL 쿼리는 다음을 보여줍니다. 그만큼 차이:
(SELECT * FROM `titles` WHERE title = 'test\') UNION ALL (SELECT * FROM `titles` WHERE title LIKE 'test\\')
출력:
| ID | TITLE | -------------- | 1 | test\ | | 1 | test\ |
열 값의 백슬래시와 일치하려면 LIKE 절에 이중 백슬래시()가 필요합니다.
이스케이프 문자 변경
원하는 경우 이스케이프 문자를 변경할 수 있습니다. LIKE 문에서 ESCAPE 키워드 뒤에 원하는 문자를 지정하여 사용됩니다.
SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
이 경우 파이프(|)가 이스케이프 문자로 사용되어 단일 백슬래시()가 일치하도록 허용합니다. LIKE 절.
위 내용은 MySQL의 WHERE 절과 LIKE 절 사이에서 백슬래시 이스케이프가 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!