2015-02-01 2 views
0

쉼표로 구분 된 형식 (예 : '녹색', '빨간색', '녹색, 빨간색'등)의 데이터가있는 Sphinx 색인에 'extra_data'라는 문자열 필드가 있습니다. . 그리고 내가 행을 찾으려면을 선택해야합니다SphinxQL에서 빈 문자열 검색

SELECT id FROM sphinx WHERE MATCH('@extra_data (^green$|^red$))') 

: 1. extra_data가 '녹색' 2. 또는 extra_data가 '빨간색' 3. 또는 extra_data가 비어가입니다

그래서 쿼리를 작성할 수 있습니다 하지만 빈 extra_data ('')를 찾으려면 어떻게 쿼리를 작성해야합니까?

답변

1

스핑크스는 '색인'을 제공하지 않습니다. 그것은 단어를 색인합니다.

그래서 색인을 생성 할 수있는 이라는 단어이되어야합니다.

데이터베이스 백업 인덱스 등 ..

sql_query = SELECT id,title, ... , IF(extra_data='','_empty',extra_data) AS extra_data FROM mytable ... 

그럼 할 수

... WHERE MATCH('@extra_data (^green$|^red$|_empty)')