В настоящее время я пытаюсь выполнить запрос FTS5 через libsqlite и должен ограничивать запрос определенным столбцом. В FTS4, это было возможно, выполнив:Как ограничить весь запрос FTS5 одним столбцом?
SELECT foo, bar FROM tableName WHERE columnName MATCH ?
, а затем связывание строку поиска в заявлении. Однако с FTS5 LHS оператора MATCH должен быть именем самой таблицы FTS, а имя столбца должно быть частью запроса:
SELECT foo, bar FROM tableName WHERE tableName MATCH 'columnName:' || ?
.
Это работает, когда строка bind
ed является одной фразой. Однако рассмотрите текст поиска this is great
. Запрос становится:
SELECT foo, bar FROM tableName WHERE tableName MATCH 'columnName:pizza is great';
Только pizza
ограничивается в columnName
, но остальная часть фразы согласована со всеми столбцами.
Как я могу обойти это?
'это great' не фраза, это три фразы. –
CL., Спасибо, отредактирован, чтобы называть его «текст поиска» – caughtinflux
Вы хотите, чтобы текст поиска представлял собой одну фразу или три фразы? –