MySQL의 백슬래시 이스케이프: WHERE 및 LIKE 절의 사용
백슬래시가 포함된 제목을 검색하는 다음 쿼리를 고려하세요.
(SELECT * FROM `titles` WHERE title = 'test\') UNION ALL (SELECT * FROM `titles` WHERE title LIKE 'test\\')
출력에서는 백슬래시가 이스케이프되지 않았음을 보여줍니다. WHERE 절. 단, LIKE 절에는 추가 백슬래시가 필요합니다.
왜 차이점이 있나요?
MySQL에서 백슬래시()는 기본적으로 LIKE에서 이스케이프 문자로 작동합니다. LIKE에 대한 MySQL 매뉴얼에 따르면:
"MySQL은 문자열에서 C 이스케이프 구문을 사용하기 때문에... LIKE 문자열에서 사용하는 모든 ''를 두 배로 늘려야 합니다. 예를 들어 'n'을 검색하려면 다음을 지정하십시오. ''를 검색하려면 '\'로 지정하십시오. 이는 백슬래시가 파서에 의해 한 번 제거되고 패턴 일치가 이루어질 때 다시 제거되어 일치할 단일 백슬래시가 남게 되기 때문입니다. against."
백슬래시 이스케이프
그러나 MySQL은 ESCAPE 키워드를 사용하여 이스케이프 문자를 변경하는 기능을 제공합니다. 예를 들어, 다음 쿼리에서는 파이프 문자(|)를 이스케이프 문자로 사용합니다.
SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
이 쿼리에서는 파이프 문자가 사용되므로 LIKE 절에 단일 백슬래시만 필요합니다. 탈출을 위해.
위 내용은 MySQL의 WHERE 및 LIKE 절에 다른 백슬래시 이스케이프가 필요한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!