SQLite fts3: поиск строки в столбце

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

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

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

Манодж

1 ответ

Решение

Убедитесь, что вы создали правильные столбцы 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

Другие вопросы по тегам