Как искать базу данных sqlite, используя регулярные выражения в Android? - PullRequest
3 голосов
/ 01 сентября 2011

Я пытаюсь найти базу данных с помощью регулярного выражения в sqlite. Вот мой код:

cursor = db.rawQuery("SELECT _id, employee FROM employees WHERE employee REGEXP ?", 
                    new String[]{"%" + prepareSearchText()  + "%"});
    adapter = new SimpleCursorAdapter(
            this,
            R.layout.search_row, 
            cursor, 
            new String[] {"_id", "employee "}, 
            new int[] {R.id.idField, R.id.nameField});
    setListAdapter(adapter);

Однако я получаю эту ошибку:

Caused by: android.database.sqlite.SQLiteException: no such function: REGEXP.

Ранее я использовал функцию REGEXP в MySQL, поэтому предположил, что она существует в sqlite, но, по-видимому, ее нет.

Каков наилучший способ выполнения регулярных выражений при запросе базы данных sqlite в Android?

Ответы [ 2 ]

5 голосов
/ 01 сентября 2011

В sqllite функция «REGEXP» по умолчанию не включена, и вам нужно «свернуть свое».

Однако оператор "LIKE" должен делать то, что вы хотите, если ваши поиски достаточно просты.

документы

0 голосов
/ 01 сентября 2011

Как предположил Джеймс, используйте оператор LIKE, а затем выполните поиск по Java с использованием регулярных выражений

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