SQLite LIKE альтернатива для REGEXP, поиск начала любого слова - PullRequest
4 голосов
/ 16 августа 2010

Невозможно использовать REGEXP в запросе SQLite в Android. Если это возможно, пожалуйста, укажите мне правильное направление.

Есть ли способ использовать условие LIKE для запроса выражения в начале любого слова в результате?

Пример:


Запись:
1. Минимум
2. Алюминий
3. В последнюю минуту

Запрос:
"Мин"

Желаемый результат
(1) Минимум
(3) в последнюю минуту

НЕ
(2) Алюминий


Это в основном мой текущий код, который будет возвращать (2) Aluminium:

public Cursor search(String query) {
    return mDb.query(TABLE, COLUMNS, KEY_NAME +" like ?", new String[] { "%"+query+"%" }, null, null, null);
}

Любая помощь будет принята с благодарностью!

1 Ответ

7 голосов
/ 16 августа 2010

Это что-то вроде хака, но ...

foo LIKE 'bar%' OR foo LIKE '% bar%'

может сработать для ваших нужд (поиск «bar» в начале слова в «foo»).Если вы также хотите, чтобы знаки препинания служили разделителями слов, вам также необходимо добавить для этого предложения OR (отсюда и причина хака).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...