Sqlite FTS3/4 только НЕ искать

Как выбрать все строки, кроме ненужных из таблицы SQLite FTS3 или FTS4?

select * from table where table match 'column:NOT phrase'
select * from table where table match 'column:-phrase'
select * from table where table match 'column:* NOT phrase'

не работает, как ожидалось.

1 ответ

Это не возможно ни с NOT или же -потому что отрицание не должно быть единственным оператором в запросе FTS.

Вы должны найти фразу и исключить эти строки из результата с помощью обычного SQL:

SELECT ...
FROM MyTable
WHERE ID NOT IN (SELECT docid
                 FROM MyTableFTS
                 WHERE MyTableFTS MATCH 'phrase');
Другие вопросы по тегам