2016-04-05 3 views
3

У меня есть таблица fts3 с именем tab и много записей в ней. Когда я запускаю этот запрос:Как выполнить запрос в таблице sqlite fts3 с помощью «- *»?

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

получить результаты, как это:

an 
anul 
an- 

Но когда я запускаю этот запрос:

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

он по-прежнему приводит к "к" запись. Результат будет как:

an 
an- 

Как я могу написать мой запрос, так что результат woudn't быть «», но только те записи, которые на самом деле содержит символ «-»?

+0

'-' является зарезервированным символ, используемым для набора операций, если я правильно чтения документации. К сожалению, я не вижу, что синтаксис состоит в том, чтобы сбрасывать символы здесь. Вы можете попробовать 'an \ - *'. – CommonsWare

ответ

1

В соответствии с правилами по умолчанию tokenizer, - отделяет слова и в противном случае игнорируется.

Вы должны искать слова an первых и проверить дефис потом:

SELECT * 
FROM tab 
WHERE key MATCH 'an' 
    AND key LIKE 'an-%'; 
Смежные вопросы