PostgreSQL LIKE 절의 정규 표현식
PostgreSQL에서 LIKE 절은 일반적으로 문자열 비교에서 패턴 일치에 사용됩니다. 그러나 LIKE 절의 유연성을 향상시키기 위해 정규식을 사용할 수도 있습니다. 정규식을 사용하는 것이 도움이 될 수 있는 일반적인 시나리오를 살펴보겠습니다.
문제:
다음 쿼리 조각을 고려하세요.
SELECT * FROM table WHERE value LIKE '00[1-9]%' -- (third character should not be 0)
이 쿼리는 값 열이 '00'으로 시작하고 그 뒤에 1에서 9 사이의 숫자가 오는 행을 검색하는 것을 목표로 합니다. 0), 그 뒤에 임의 개수의 문자가 옵니다. 그러나 쿼리는 의도한 문자열 '0090D0DF143A'와 일치하지 않습니다.
해결책:
이 문제를 해결하려면 정규식 연산자 ~는 LIKE 연산자 대신 사용해야 합니다. 또한 원하는 동작을 달성하기 위해 정규식 자체를 수정할 수 있습니다.
SELECT * FROM tbl WHERE value ~ '^00[^0]'
이 식에서:
모범 사례:
또는 명확성과 성능 최적화를 위해 여러 LIKE 표현식을 사용하는 다음 쿼리를 사용하는 것이 좋습니다.
SELECT * FROM tbl WHERE value LIKE '00%' -- starting with '00' AND value NOT LIKE '000%' -- third character is not '0'
LIKE 및 NOT LIKE 절을 모두 활용하면 적용하기 전에 덜 복잡한 LIKE 표현식을 사용하여 후보 집합을 좁혀 효율성이 보장됩니다. 더 비싼 정규식 부정.
인덱스를 사용하면 이 예와 같은 간단한 정규식과 관련된 쿼리 속도를 높일 수 있습니다. 자세한 내용은 LIKE와 ~의 차이점에 대한 PostgreSQL 문서를 참조하세요.
위 내용은 정규 표현식이 PostgreSQL의 LIKE 절에서 패턴 일치를 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!