SQLite 문자열에 다른 문자열 쿼리가 포함됨


111

어떻게해야합니까?

예를 들어 내 열이 "고양이, 개, 새"이고 열에 고양이가 포함 된 행을 가져 오려면?


3
샘플 데이터 세트로 질문을 편집하십시오. 정확히 무엇을 요구하는지 결정하기는 어렵습니다.
p.campbell

행복한 100 번째 찬성 투표.
감독

답변:


195

LIKE 사용 :

SELECT *
  FROM TABLE
 WHERE column LIKE '%cats%'  --case-insensitive

4
검색하는 문자열이 변수이거나 .NET과 같은 특수 문자가 포함 된 경우에는 적합하지 않습니다 %.
Sam

10
"고양이"는 필드가 다른 테이블의 경우, 당신은 사용할 수 '%'||table2.field||'%'등의 기준으로
스테판 채널.

96

LIKE이 경우에 적합 하지만 보다 일반적인 솔루션은 instr검색 문자열의 문자를 이스케이프 할 필요가없는를 사용하는 것입니다. 참고 : instrSqlite 3.7.15부터 사용할 수 있습니다 .

SELECT *
  FROM TABLE  
 WHERE instr(column, 'cats') > 0;

또한, 명심 LIKE대소 인 구분하지 않는 반면, instr대소입니다 민감한 .


13
어떤 당신의 minSdkVersion이 21 (5.0 롤리팝)해야한다는 의미
막심 Turaev

1
@WilliamEntriken 내 테스트에서는 instr(...)조금 더 빠릅니다 (0.32s 대 0.34s). .timer onSQLite에서 사용하여 실행 시간을 측정 할 수 있습니다 .
Arnie97
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.