On 31-7-2018 07:25, paul tracy wrote:
> Forgive me if this is the wrong way to do this but I'm a newbie.
> I am using version 3.24.0 with FTS5
> Is there a way to perform a full text search that returns every row except 
> records matching a specified query string?
> The following does not work because of a syntax error as the syntax requires 
> a query string before the NOT operator: … MATCH 'NOT blah';The following also 
> does not work because the * operand cannot be used by itself: … MATCH '* NOT 
> blah';In desperation I tried the following which returned data but a 
> seemingly random set of data: MATCH NOT 'blah';
> I wound up using something like this …
> SELECT * FROM mytable WHERE id NOT IN (SELECT id from FullTextIndex WHERE 
> FullTextIndex MATCH 'blah');
> I think this is much slower on large databases than a full FTS-based query 
> but maybe I'm wrong and this is as fast as it gets.
> Any insight would be greatly appreciated.
From: http://www.sqlitetutorial.net/sqlite-full-text-search/

For example, to get the documents that match the |learn| phrase but
doesn’t match the |FTS5| phrase, you use the |NOT| operator as follows:

LECT *
FROM posts
WHERE posts MATCH 'learn NOT text';


But this should work too (untested):
SELECT *
FROM posts
WHERE NOT posts MATCH 'text' AND posts MATCH 'learn';

_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to