일반적으로 열에 문자열이 들어 있는지 여부를 묻는 SQLite는 다음 행을 따라 쿼리를 사용합니다. SELECT * FROM table WHERE column LIKE '%' || ? || '%'
.열에 문자열이 포함되어있는 경우 어떻게 SQLite에 요청합니까?
주요 문제는 내가 검색 할 문자열이 %
일 경우 무엇입니까?
나는 현재 str_replace(search, '%, '%%')
과 같은 것으로 검색하고있는 문자열을 이스케이프 처리합니다. 내가 %
의 간단한 문자열에 적용 할 때 이것은 두 개의 이스케이프 된 퍼센트 인 %%%%
과 같은 문자열을 나타냅니다. 또한 이스케이프 문자로 시작하는 문자열의 경우 어떻게됩니까? %hello
은 %%%hello
이되며, 이는 %
으로 이스케이프되며 그 다음에 임의의 문자 수와 hello가옵니다.
나는 이스케이프 문자를 바꿀 수 있지만 새로운 이스케이프 문자는 같은 문제가 있습니다.
참고 : 저는 instr을 사용할 수 있지만이 문제에 대한 해결책이 있는지 궁금합니다.
알겠습니다. 그 혼란을 해결해 주셔서 감사합니다. – chacham15
와일드 카드 문자가 이스케이프 문자 일 경우 어떻게해야합니까? 이 경우 %%는 효과적으로 %로 변환됩니다. – Tarik
@ 타리크 어리석은 행동 일 것입니다. –