2016-12-19 37 views
0

如何从SQLite FTS3或FTS4表中选择除不需要的所有行?只有Sqlite FTS3/4不搜索

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' 

不按预期工作。

+0

是您的库编译为标准或增强的查询语法? –

+0

这是来自NuGet - System.Data.Sqlite Core的标准库。我认为,它是用标准语法编译的。我可以手动编译它,但是请告诉我,什么是“enchanced语法”,哪些查询语法会帮助我? – devspec

+0

我没有写出额外的“c”。阅读[精美文档](http://www.sqlite.org/fts3.html#full_text_index_queries)。 –

回答

0

这不可能与NOT-,因为否定不能是FTS查询中唯一的操作符。

你要搜索短语,并排除其结果的行正常的SQL:

SELECT ... 
FROM MyTable 
WHERE ID NOT IN (SELECT docid 
       FROM MyTableFTS 
       WHERE MyTableFTS MATCH 'phrase');