4

列内の特定の文字列を検索する方法はありますか?

SELECT * from email_fts WHERE email_fts MATCH 'to:"a@b.com" OR from:"c@d.com"' のように検索したい

前もって感謝します、

マノジ

4

1 に答える 1

6

FTS インデックスに適切な FTS 列を作成していることを確認してください。

CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");

次に、個々の FTS 列を検索できます。

SELECT  rowid 
FROM    email_fts 
WHERE   "to" MATCH 'a@b.com'

UNION

SELECT  rowid 
FROM    email_fts 
WHERE   "from" MATCH 'c@d.com'

編集:私の以前の回答にはORWHERE句が含まれていました。ORどうやら sqlite はクエリとMATCH条件の組み合わせをサポートしていないようです。上記のユニオンが機能します。

FTS ドキュメントはこちらです。これはドキュメントで使用されている例の 1 つです。

http://sqlite.org/fts3.html

于 2010-04-12T17:29:00.397 に答える