> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 WHERE 및 LIKE 절에 다른 백슬래시 이스케이프가 필요한 이유는 무엇입니까?

MySQL의 WHERE 및 LIKE 절에 다른 백슬래시 이스케이프가 필요한 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-06 20:34:41
원래의
618명이 탐색했습니다.

Why Do MySQL's WHERE and LIKE Clauses Require Different Backslash Escaping?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿