PostgreSQL LIKE 패턴에서 특수 문자 이스케이프
LIKE 패턴에서 특수 문자 이스케이프는 정확한 일치를 보장하는 데 중요합니다. 예를 들어 이름 열이 "rob%"와 같이 사용자가 제공한 문자열로 시작하는 행을 검색하는 시나리오를 생각해 보세요. 그러나 사용자 입력에 "_"와 같은 특수 문자가 포함되어 있으면 거짓 긍정이 발생합니다.
이스케이프 메커니즘
PostgreSQL에서는 다음을 사용하여 특수 문자를 이스케이프할 수 있습니다. 백슬래시() 또는 ESCAPE 절로 지정된 사용자 정의 이스케이프 문자입니다. 문자 그대로 특수 문자를 일치시키려면 두 번 이스케이프해야 합니다.
예
"rob_"를 문자 그대로 일치시키려면 다음 LIKE 패턴을 사용합니다.
WHERE name LIKE 'rob^^%'
또는 이스케이프 절을 사용하고 대체 이스케이프를 지정할 수 있습니다. 문자:
WHERE name LIKE 'rob_%node1^^node2.uucp@%' ESCAPE '^'
이는 "john%node1^node2.uccp@" 뒤에 임의의 문자가 오는 것과 일치합니다.
고려 사항
일반 SQL 명령문
다음은 Standard_conforming_strings ON 여부에 관계없이 서버측 이스케이프 문자 대체를 사용하여 사용할 수 있는 일반 SQL 문입니다.
SELECT * FROM USERS WHERE name LIKE replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'
위 내용은 PostgreSQL LIKE 패턴에서 특수 문자를 이스케이프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!