現在、私はlibsqlite経由でFTS5クエリを実行しようとしており、クエリを特定の列に制限する必要があります。FTS5クエリ全体を単一の列に限定する方法は?
SELECT foo, bar FROM tableName WHERE columnName MATCH ?
し、文に検索文字列を結合する:FTS4では、これが行うことによって可能でした。ただし、FTS5では、MATCH演算子のLHSは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'ではないですが、それは3つのフレーズです。 –
CL。、ありがとう、「検索テキスト」と呼ばれるように編集 – caughtinflux
検索テキストを1つのフレーズまたは3つのフレーズにしますか? –