0

我想根据开始和结束字符以及字符串的长度进行查询。假设,在我的数据库中我有你好,如何,欢呼,亲爱的。我想从数据库中获取蜂蜜,所以我想做一个查询,比如它会找到以“h”开头并以“y”结尾的字符串和单词的长度是5。我写了一个查询是对的吗?

Cursor c = sqLiteDatabase.rawQuery("select * from " + MYDATABASE_TABLE
                + " where LENGTH(`" + MYDATABASE_FIELD + "`) = " + len
                + " and `" + MYDATABASE_FIELD + "` LIKE `" + part1 + "%"
                + part2 + "`", null);
4

2 回答 2

1

你应该有这样的条件,

SELECT...
FROM...
WHERE LENGTH(colName) = 5 AND
      colName LIKE 'h%s'
于 2013-02-11T16:05:38.590 回答
1

第二个LIKE运算符是一个字符串,而不是表/列名,所以你不能用反引号引用它。此外,使用参数完全避免了字符串格式化问题:

Cursor c = sqLiteDatabase.rawQuery(
    "SELECT * FROM `" + MYDATABASE_TABLE + "` " +
      "WHERE LENGTH(`" + MYDATABASE_FIELD + "`) = " + len + " " +
        "AND `" + MYDATABASE_FIELD + "` LIKE ?",
    new String[] { part1 + "%" + part2 });
于 2013-02-11T18:16:19.127 回答