【问题标题】:how to search sqlite database using regular expression in android?如何在android中使用正则表达式搜索sqlite数据库?
【发布时间】:2011-09-01 05:49:47
【问题描述】:

我正在尝试使用 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数据库时执行正则表达式的最佳方法是什么?

【问题讨论】:

    标签: java android sql sqlite


    【解决方案1】:

    在 sqllite 中,“REGEXP”函数默认是不包含的,你需要“自己动手”。

    但是,只要您的搜索相当简单,“LIKE”运算符就应该做您想做的事情。

    the docs

    【讨论】:

    • 我如何在 android 中扮演我自己的 REGEXP 角色?我找不到办法做到这一点
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      相关资源
      最近更新 更多