2016-04-05 54 views
3

我有一個名爲tab的fts3表和很多條目。當我運行此查詢:如何使用「 - *」在sqlite fts3表中進行查詢?

SELECT * FROM tab WHERE key MATCH 'an*'; 

我得到的結果是這樣的:

an 
anul 
an- 

但是當我運行此查詢:

SELECT * FROM tab WHERE key MATCH 'an-*'; 

仍然導致了 「一個」 條目。其結果將是這樣的:

an 
an- 

如何我寫我的查詢,以便結果woudn't是「一個」,但只有實際包含字符的條目「 - 」?

+0

'-'是保留字符,用於設置操作,如果我正確地閱讀文檔。不幸的是,我沒有看到這裏用什麼語法來轉義字符。你可以試試' - \ *'。 – CommonsWare

回答

1

根據默認的tokenizer規則,-分隔單詞,否則將被忽略。

你要搜索的單詞an第一,並檢查連字符算賬:

SELECT * 
FROM tab 
WHERE key MATCH 'an' 
    AND key LIKE 'an-%'; 
相關問題