2016-04-05 23 views
3

Sekme adında bir fts3 tablosu ve içinde çok sayıda giriş var. Ben bu sorguyu çalıştırdığınızda:sqlite fts3 tablosunu "- *" kullanarak nasıl sorgulayabilirim?

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

Ben sonuçları bu hale:

an 
anul 
an- 

Ama bu sorguyu çalıştırdığınızda:

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

hala "bir" giriş sonuçlanır. Sonuç olurdu gibi:

an 
an- 

nasıl sonuç "bir" woudn't böylece sorgu, ama aslında karakter içeriyor sadece bu girdileri yazabilir "-"?

+0

'-' Ben doğru belgeleri okuyorum eğer set işlemleri için kullanılan, rezerve karakterdir. Maalesef, sözdiziminin burada kaçmak için ne yazdığını göremiyorum. Bir \ - * 'deneyebilirsiniz. – CommonsWare

cevap

1

Varsayılan tokenizer kurallarına göre, - kelimeleri ayırır ve aksi halde yoksayılır.

Önce kelimenin an aramak ve sonrasında tire kontrol etmek zorunda:

SELECT * 
FROM tab 
WHERE key MATCH 'an' 
    AND key LIKE 'an-%'; 
İlgili konular