4
有什麼方法可以搜索列中的特定字符串嗎?SQLite fts3:在列中搜索字符串
我想從email_fts像SELECT *要搜索email_fts MATCH '到: 「[email protected]」,或者從 「[email protected]」'
在此先感謝,
馬諾
有什麼方法可以搜索列中的特定字符串嗎?SQLite fts3:在列中搜索字符串
我想從email_fts像SELECT *要搜索email_fts MATCH '到: 「[email protected]」,或者從 「[email protected]」'
在此先感謝,
馬諾
確保您在FTS索引創建正確FTS列:
CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");
然後你就可以搜索個人FTS列:
SELECT rowid
FROM email_fts
WHERE "to" MATCH '[email protected]'
UNION
SELECT rowid
FROM email_fts
WHERE "from" MATCH '[email protected]'
編輯:我以前的答案WHERE
子句中有一個OR
。顯然sqlite不支持結合OR
查詢與MATCH
條件。上述聯合工作。
FTS文檔在這裏,這是文檔中使用的示例之一。
無法找到相關文檔。 我得到這樣的錯誤: 源碼> .schema email_fts 創建虛擬TABLE [email_fts]使用FTS3( [從], [主題], [體], [到], [CC], 並[f ilename] sqlite> SELECT * FROM email_FTS WHERE「to」MATCH'[email protected]'OR「from」 MATCH'b @ c。 com'; SQL錯誤:無法使用的功能相匹配的請求的上下文 sqlite的> – Manoj 2010-04-13 10:12:22
@Manoj,我不知道SQLite不支持的結合'或'和'MATCH'。奇怪。我更新了使用'UNION'的答案,它工作正常。如果您需要與非FTS數據結合使用,則可以將聯合包裝在子查詢中並將其聯接到其他表上。 – 2010-04-13 13:29:05