복붙노트

[SQL] SQLite는 쿼리, 'LIKE'

SQL

SQLite는 쿼리, 'LIKE'

내 데이터베이스에서 정보를 검색하는 것을 시도하고있다. 나는 임 원 몽과 제한 같은 단어가 있습니다.

나는 이름 LIKE이 '% LIM %'는 임 원 몽과 제한을 모두 표시 memberdb에서 내 쿼리, SELECT 이름을하고 난 단지 임 원 몽의 데이터를합니다.

어떻게 쿼리를 다시 작성해야합니까?

해결법

  1. ==============================

    1.쿼리 다음 실행 :

    쿼리 다음 실행 :

    select name from memberdb where name like '% LIM %' OR name like "LIM %" OR name like "% LIM" OR name like "LIM"
    
  2. ==============================

    2.당신이 "액세스 제한"이라는 단어를 일치 시키려면 (그것을 "는 LIM", "LIM은", "는 LIM은"및 "액세스 제한", 그러나 "제한"또는 "ALIM"를 일치하도록), 당신은을 사용할 수 있습니다 (<: [] [와 [] [] :>) SQL 정규 표현식을 사용 단어 경계 키워드합니다. 이 경기 공백 (공백, 탭, 줄 바꿈), 문자열의 시작 / 종료, 일부 문장 부호뿐만 아니라.

    당신이 "액세스 제한"이라는 단어를 일치 시키려면 (그것을 "는 LIM", "LIM은", "는 LIM은"및 "액세스 제한", 그러나 "제한"또는 "ALIM"를 일치하도록), 당신은을 사용할 수 있습니다 (<: [] [와 [] [] :>) SQL 정규 표현식을 사용 단어 경계 키워드합니다. 이 경기 공백 (공백, 탭, 줄 바꿈), 문자열의 시작 / 종료, 일부 문장 부호뿐만 아니라.

    이 같은:

    SELECT name FROM memberdb WHERE name REGEXP '[[:<:]]LIM[[:>:]]'
    

    주 정규 표현식은 대소 문자를 구분하지 않습니다 것을 (바이너리 문자열을 사용하지 않는 한).

    당신은 단지 공간을 일치시킬 경우에도 정규 표현식을 사용할 수 있습니다; 이 문자열의 시작이나 공간 중 하나와 일치합니다, 다음 "액세스 제한"을 선택한 후 공백이나 문자열의 끝 :

    SELECT name FROM memberdb WHERE name REGEXP '(^| )LIM( |$)'
    

    (안드로이드의 모든 3.5.9 이상을 사용하는 SQLite는 3 이상) 두 솔루션 모두 지원 정규 표현식은 SQL 버전에서 테스트되었습니다.

  3. ==============================

    3.이거 한번 해봐:

    이거 한번 해봐:

    SELECT name 
    FROM MEMBERDB 
    WHERE name LIKE 'LIM %' OR name LIKE '% LIM'
    OR name LIKE '% LIM %' OR name LIKE 'LIM';
    

    이 같은 데이터 뭔가가 있다고 가정 :

    'LIMITED'
    'Lim Won Mong'
    'Wang Tat Lim'
    'ELIM TED'
    'lim'
    'Wang LIM tim'
    

    이 쿼리는 당신에게 오직 다음과 같은 데이터를 반환합니다 :

    'Lim Won Mong'
    'Wang Tat Lim'
    'lim'
    'Wang LIM tim'
    
  4. from https://stackoverflow.com/questions/12613926/sqlite-query-like by cc-by-sa and MIT license