SQLite fts3: поиск строки в столбце - PullRequest
4 голосов
/ 12 апреля 2010

Есть ли способ поиска определенной строки в столбце?

Я хочу искать как SELECT * из email_fts, ГДЕ email_fts MATCH 'в: "a@b.com" ИЛИ из: "c@d.com"'

Заранее спасибо,

Манодж

1 Ответ

6 голосов
/ 12 апреля 2010

Убедитесь, что вы создали правильные столбцы FTS в индексе FTS:

CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");

И тогда вы можете искать отдельные столбцы FTS:

SELECT  rowid 
FROM    email_fts 
WHERE   "to" MATCH 'a@b.com'

UNION

SELECT  rowid 
FROM    email_fts 
WHERE   "from" MATCH 'c@d.com'

РЕДАКТИРОВАТЬ : Мой предыдущий ответ содержал OR в предложении WHERE. Очевидно, sqlite не поддерживает комбинирование OR запросов с MATCH условиями. Вышеуказанный союз работает.

Документы FTS здесь, это один из примеров, используемых в документах.

http://sqlite.org/fts3.html

...