【问题标题】:SQLite LIKE alternative for REGEXP, Match Start of Any WordSQLite LIKE 替代 REGEXP,匹配任何单词的开头
【发布时间】:2010-08-16 14:53:49
【问题描述】:

在 Android 的 SQLite 查询中似乎无法使用 REGEXP。如果可能,请指出正确的方向。

有没有办法使用 LIKE 条件来查询结果中任何单词开头的表达式?

例子:


参赛作品:
1. 最低
2. 铝
3. 最后一分钟

查询:
“分钟”

期望的结果
(1) 最低
(3) 最后一分钟

不是
(2) 铝


这基本上是我当前的代码,它将返回 (2)Aluminum:

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

任何帮助将不胜感激!

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    这有点像 hack,但是...

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

    可能会满足您的需求(在“foo”中的单词开头找到“bar”)。如果您还希望标点符号用作单词分隔符,您还必须为此添加 OR 子句(因此这是一个 hack)。

    【讨论】:

    • 嗯,我对如何在 query() 方法中实现以及哪个参数去哪里感到有点困惑:P。这都是第四个论点的一部分吗? “富”代表什么?我假设“bar”是查询?
    • foo 是数据库表中的列名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2012-06-22
    相关资源
    最近更新 更多