Is there any way to search for a particular string in a column?
I want to search like SELECT * from email_fts WHERE email_fts MATCH \'to:\"a@b.com\" OR from:\"c@d.co
Make sure you create proper FTS columns in the FTS index:
CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");
And then you can search individual FTS columns:
SELECT rowid
FROM email_fts
WHERE "to" MATCH 'a@b.com'
UNION
SELECT rowid
FROM email_fts
WHERE "from" MATCH 'c@d.com'
EDIT: My previous answer had an OR
in the WHERE
clause. Apparently sqlite doesn't support combining OR
queries with MATCH
conditions. The above union works.
FTS docs are here, this is one of the examples used in the docs.
http://sqlite.org/fts3.html