- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何执行下面的查询
select * from regions where field1 in('word1', 'word2')
使用 sqlite rawQuery 方法?
我试过下面的代码:
String[] myArray = new String[]{"word1","word2"};
Cursor cursor = mDb.rawQuery("select * from regions where field1 in(?)", myArray );
但是错误:
Caused by: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range. The statement has 1 parameters.
最佳答案
您将 2 个参数传递给 rawQuery()
:"word1"
和 "word2"
但 sql 语句仅包含 1 个占位符 ?
.
将其更改为:
Cursor cursor = mDb.rawQuery("select * from regions where field1 in(?, ?)", myArray );
编辑。
如果你想传递未知数量的参数,那么你必须在 in
中构建逗号分隔的参数,并且只使用 rawQuery()
的第一个参数:
String[] myArray = new String[]{"word1","word2"};
StringBuilder sb = new StringBuilder("'");
for (String word : myArray) {
sb.append(word.replace("'", "''")).append("','");
}
if (sb.length() > 1) {
sb.setLength(sb.length() - 2);
}
Cursor cursor = mDb.rawQuery("select * from regions where field1 in (" + sb.toString() + ")", null);
这不是一个安全的解决方案,您必须正确准备数组的项目,这样它们就不会包含单引号(这就是我使用 replace()
的原因)。
关于java - sqlite rawQuery where in 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57141908/
我们有这两个类 MainActivity 和一个 DBHelper DBHelper创建数据库和两个表一个表,masterPW ,只有一行两列,ID和 ColPW .一旦创建并插入数据,该表将仅包含一
我正在对我的数据库进行更新,但它不起作用。这是我的代码: list.setOnItemClickListener(new OnItemClickListener() { @Overri
我一遍又一遍地寻找这个问题的答案,但你是我唯一的机会。事情是这样的: 我有一个 DBAdapter 类、MakeListActivity 和 SeeListActivity。 在DBAdapter中我
我想实现 Android Room 持久性。 这是我的 DAO 界面。 @Dao interface FoodDao { /** * Returns all data in tabl
我得到了这个方法,它应该检查数据库中的给定数据并显示包含该数据的整行。 movies 是表的名称,year 是列的名称。 我已经尝试了几个小时,但找不到原因,为什么它会抛出此错误: 11-24 19:
因此,目前在添加到我的数据库时,我执行此 select 语句获取结果并将其添加到我的数据库中的单独列中,如下所示: public void addGasLog(GasLog gasLog){
一个简单的问题,我在互联网上找不到它,可能我看错了“术语”。但是如何制作带有“if contains”的SQL查询语句 "SELECT something FROM " + TABLE_NAME +
我的准备好的 SQL 语句有一个奇怪且无法解释的错误,它没有提供与 noprepared 语句相同的结果。 这两个版本不应该返回相同的结果吗? 准备好的版本(结果错误): sb.append(" WH
当我使用正常的 13 位条码运行以下任一查询时,我的数据库返回的结果非常好。但是,当我使用 8 位条形码运行完全相同的代码时,即使结果存在于数据库中,也不会在第二个查询中找到。对我来说,这些查询看起来
为了获得查询的多个结果,我使用了 Cursor c = mydatabase.rawQuery("command", null); 然后是 while (c.moveToNext()) { ... }
我希望能够使用原始查询按升序对单词进行排序(因为我将使用游标)。但是,当我尝试按字母顺序对单词进行排序时,我的应用程序崩溃了,出现了这个错误: android.database.sqlite.SQLi
我正在使用 String.format 将 SQLite 查询构建为 String 并将其传递给 SQLiteDatabase.rawQuery。我最后传递的整数参数被硬编码为零(我正在寻找大于零的任
如何执行下面的查询 select * from regions where field1 in('word1', 'word2') 使用 sqlite rawQuery 方法? 我试过下面的代码: S
我正在尝试使用带有 simpleCursorAdapter 的 rawQuery 来显示到 ListView ,但它一直向我抛出错误 04-29 13:36:36.453: ERROR/Android
什么都试过了。此更新不起作用。没有错误或其他什么 - 它只是不更新表格。 void SetDisable (Integer ID, boolean action){ Integ
我正在使用MySQLI Wrapper如 docs 中所述关于运行 rawQuery。由于它没有任何搜索数据库的功能,所以我自己编写了。下面是正在使用的代码。 $songs = $db->Object
Android 中 SQLite 数据库的以下 rawQuery 不返回任何结果: String query = "SELECT * FROM " + "(SELECT MATCH_ID, P
我正在运行以下命令,但以下列的列名称不明确 Cursor cursor = getWritableDatabase().rawQuery("select ((odometer) - y.odomete
我正在尝试在 WHERE 中使用动态创建的列表,例如: select * from books where id in (123, 120, 125) and bookCover = 'Hardcov
我创建了这个方法来了解我的 Sqlite 数据库中是否存在联系人。 public Cursor doesContactExist(String name) { return db.rawQue
我是一名优秀的程序员,十分优秀!