如何在android中使用正则表达式搜索sqlite数据库?

时间:2011-09-01 05:49:47

标签: java android sql sqlite

我正在尝试使用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.

之前我在MySQL中使用了函数REGEXP,所以我认为它存在于sqlite中,但显然它不存在。

在android中查询sqlite数据库时执行正则表达式的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

在sqllite中,默认情况下不包含“REGEXP”功能,您需要“自己滚动”。

然而,只要您的搜索相当简单,“LIKE”运算符就可以执行您想要的操作。

the docs

答案 1 :(得分:0)

正如James建议的那样,使用LIKE运算符,然后使用正则表达式对结果进行java搜索