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 здесь, это один из примеров, используемых в документах.