2016-12-19 62 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');