PostgreSQL에서 패턴 일치를 위한 문자열 이스케이프
사용자 제공 문자열에 %와 같은 특수 패턴 문자가 포함될 수 있는 PostgreSQL의 패턴을 정확하게 일치시키려면 , 정확한 일치를 보장하려면 이러한 문자를 이스케이프 처리하는 것이 좋습니다. 또는 애플리케이션이 이스케이프 프로세스를 처리할 수 있습니다.
PostgreSQL에서는 % 및 _와 같은 문자를 를 사용하여 인용해야 하지만 ESCAPE 절을 사용하여 사용자 정의할 수 있습니다. 문자 그대로 문자를 일치시키려면 두 번 인용해야 합니다.
예를 들어 'john%node1^node2.uucp@' 패턴을 이스케이프 문자로 ^와 일치시키려면 다음 쿼리를 사용하십시오.
... WHERE field LIKE 'john^%node1^^node2.uucp@%' ESCAPE '^'
그러나 Standard_conforming_strings가 비활성화된 경우(PG 9.1에서는 기본적으로 활성화되어 있음) 다른 목적으로 활용됩니다. 또한 주입 시나리오에서는 클라이언트측 인용이 필요할 수 있습니다.
Go에서 일반 처리를 위해 표준_적합성_문자열과 대체 인용 문자를 모두 고려하면 다음 쿼리를 사용할 수 있습니다.
db.Query("SELECT * from USERS where name like replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'", variable_user_input);
이것은 서버 측에서 특수 문자의 이스케이프 및 교체를 처리하여 SQL 삽입을 방지하고 정확한 패턴 일치를 보장합니다.
위 내용은 PostgreSQL에서 정확한 패턴 일치를 위해 특수 문자를 이스케이프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!