SQLite で FTS を使用しています。データがあります。
abc
def
go to
go
jdk
sqlite
let
go on
going to
not going
私はクエリを使用します: select * from table where columns MATCH 'go*'
. 結果:
行く
行く
手放す 行く
行く
行か
ない
しかし、結果が欲しいのですgo to, go on
が、クエリの方法は?
SQLite で FTS を使用しています。データがあります。
abc
def
go to
go
jdk
sqlite
let
go on
going to
not going
私はクエリを使用します: select * from table where columns MATCH 'go*'
. 結果:
行く
行く
手放す 行く
行く
行か
ない
しかし、結果が欲しいのですgo to, go on
が、クエリの方法は?
ドキュメントで説明されているように、はgo*
プレフィックス検索であり、 で始まるすべての単語を検索しますgo
。
2 つの単語を検索したいので、理論上はフレーズ検索を行う必要があります。ただし、"go *"
プレフィックス検索には実際のプレフィックスが必要なため、機能しません。
最善の策は、単語を検索し、コード内で、最後にのみ発生するgo
返されたレコードを除外することです。go
select * from table where columns MATCH '^go *'
これにより結果が得られます: go to, go on
select * from table where columns MATCH '^go*'
これにより結果が得られます: go to, go on, going to