4
열의 특정 문자열을 검색 할 수있는 방법이 있습니까?SQLite fts3 : 열에서 문자열 검색
'에 " [email protected]"OR에서 " [email protected]"'MATCH email_fts 어디 email_fts에서 SELECT *처럼 검색 할사전에
감사합니다,
마노
열의 특정 문자열을 검색 할 수있는 방법이 있습니까?SQLite fts3 : 열에서 문자열 검색
'에 " [email protected]"OR에서 " [email protected]"'MATCH email_fts 어디 email_fts에서 SELECT *처럼 검색 할사전에
감사합니다,
마노
확인 당신이 FTS 지수에 적절한 FTS 열을 생성합니다 :
CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");
을 그리고 당신은 개별 FTS 열을 검색 할 수 있습니다
을SELECT rowid
FROM email_fts
WHERE "to" MATCH '[email protected]'
UNION
SELECT rowid
FROM email_fts
WHERE "from" MATCH '[email protected]'
편집 : 내 이전의 대답은 WHERE
절에 OR
했다. 분명히 sqlite는 MATCH
조건으로 OR
개의 쿼리를 결합하는 것을 지원하지 않습니다. 위의 노조가 작동합니다.
FTS docs는 여기에 있으며, 이것은 문서에서 사용 된 예제 중 하나입니다.
관련 문서를 찾을 수 없습니다. , [몸], sqlite가> .schema이 는 가상 테이블은 [email_fts] ([에서] , [제목] fts3 사용하여 만든 email_fts : 는이 같은 오류가있어 [발] [CC] , [F ilename] sqlite> SELECT * FROM email_FTS WHERE "to"MATCH '[email protected]'OR "from" MATCH 'b @ c. com '; SQL 오류 : 요청 된 컨텍스트 sqlite가> – Manoj
@Manoj의 기능 MATCH를 사용할 수 없습니다, 나는 MATCH''와 OR''조합 지원하지 않습니다 SQLite는 몰랐어요. 이상한. 나는 잘 작동하는'UNION'을 사용하는 대답을 업데이트했습니다. 비 FTS 데이터와 결합해야하는 경우 유니버스를 하위 쿼리로 래핑하고 다른 테이블에 조인 할 수 있습니다. –