검색 상자에 주어진 입력을 기반으로 데이터를 검색해야한다는 요구 사항이 있습니다. 이postgresql의 where 쿼리에서 %를 전달하여 데이터 필터링
SELECT distinct d.desktop_id as desktopId,
d.name as desktopName
from desktoptable
where d.name
ilike '%'+searchString+'%'
되는 searchString처럼 쿼리 작성이 문제를 처리하기 위해 : 아무것도 입력 난 쿼리에 전달하고 모두 없습니다. 이 쿼리는 % 및 _을 제외한 다른 모든 입력 문자열을 올바르게 처리합니다. postgres 문서에서 "_ 및 %는 각각 단일 문자 및 임의의 문자열을 나타내는 와일드 카드 문자로 읽습니다".
데이터를 필터링하기 위해 쿼리에 % 또는 _를 입력으로 전달할 수 있습니다. 내 DB에는 거기에 %와 _도있는 레코드가 있습니다.
누구든지이 문제를 해결하는 방법을 알려줄 수 있습니까?
귀하의 제안은 맞지만 OP는 % _을 (를) 이스케이프하고 싶습니다. –
@ 예 안녕하세요. 나는 그렇게 생각하지 않습니다. 와일드 카드 검색을 원한다고 보입니다.이 경우'%'는 어떤 식 으로든 이스케이프 처리되지 않아야합니다. –
그래서 그가 % _와 같은 매개 변수를 넣으면 쿼리는 "ILIKE % aa % _ %"가됩니다. 데이터를 필터링하기 위해 쿼리에 입력으로 % 또는 _를 전달하려고하기 때문에 –