Are the values in column post_fts.id a set of distinct integers? If so, you could just use the "rowid" field for the id. Otherwise, assuming they are integer values (with no embedded spaces) in the post_fts.id column, I think MATCH should work quite well. The trouble comes if you have a text value like: '123 456 789' then the constraints "id = ?" and "id MATCH ?" may match different sets of rows. At that point I think you have to use an "external content table" that you can create an index on: (https://www.sqlite.org/fts5.html#external_content_and_contentless_tables) Dan.