【问题标题】:Search string array elements in sqlitedb在 sqlitedb 中搜索字符串数组元素
【发布时间】:2026-01-13 04:55:01
【问题描述】:

我的表包含 7 列,即 ID、NAME、LAT、LON、SPEED 和 TYPE。表名是路由,通过使用此代码,我可以使用搜索栏针对 NAME 字段提供的 ID 字段从数据库中找到所需的项目,但现在我想在 NAME 列中查询类似的更多项目并获取 ID,我想将其存储在光标中。问题是由于对 SQL 的了解较少,我无法编写查询语句。

 public Cursor selectByID(long id)
    {
        return db.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE " + K_ID + " = " + id, null);
    }

【问题讨论】:

  • 拜托,你能改写你的问题吗?很难理解。

标签: android oracle sqlite search


【解决方案1】:

所以如果你想按名称获取 ID:

public Cursor selectByName(String name) {
    return db.rawQuery("SELECT " + K_ID + " FROM " + TABLE_NAME + " WHERE " + NAME + " = " + name, null);
}

如果你想通过几个名字获得几个 ID:

 public Cursor selectByNames(String[] names) {
    String where = "WHERE ";
    for (int i = 0; i < names.length; ++i) {
        if (i != 0) where += " OR ";
        where += NAME + "='" + names[i] + "'";
    }
    return db.rawQuery("SELECT " + K_ID + " FROM " + TABLE_NAME + " " + where + " ", null);
}

【讨论】:

  • 感谢它的工作。起初它给我带来了问题,但我在 rawQuery 中用“SELECT * FROM”而不是“SELECT”+ K_ID +“FROM”更改了它。
  • 如果你想查询所有列 - 使用 "SELECT * FROM " ,但如果你只需要查询几列 - 使用这些列的确切名称而不是 "*" 符号。这将提高性能。