java - WHERE 子句不起作用,不返回所需的值
问题描述
看看我的要求。我明确指定了参数,但请求没有返回正确的结果。我知道这个问题有很多话题,但我还没有看到像我这样的请求。请帮忙。
items = new ArrayList<>();
items_test = new ArrayList<>();
db = getBaseContext().openOrCreateDatabase("budget_app.db", MODE_PRIVATE,
null);
//
Cursor queryt = db.rawQuery("SELECT * FROM budget;", null);
if (queryt.moveToFirst()) {
while (queryt.moveToNext()) {
String type = queryt.getString(0);
String name = queryt.getString(1);
String date = queryt.getString(2);
Integer value = queryt.getInt(3);
items_test.add(0, name);
}
}
Log.d("Check", String.valueOf(items_test));
Cursor queryt2 = db.rawQuery("SELECT * FROM budget WHERE name = \"loh\"", null);
if (queryt2.moveToFirst()) {
while (queryt2.moveToNext()) {
String type = queryt2.getString(0);
String name = queryt2.getString(1);
String date = queryt2.getString(2);
Integer value = queryt2.getInt(3);
items_test2.add(0, name);
}
}
Log.d("Check", String.valueOf(items_test2));
这是我的输出:
解决方案
发现了错误。
你在打电话
if (queryt2.moveToFirst()) {
while (queryt2.moveToNext()) {
...
这会将您的光标移动到第二个位置(索引 1)
即,如果您将代码更改为“其中名称在('loh','fju');” 您应该只获得一个结果,而不是使用现有代码获得两个结果。
相反,您可以尝试
queryt2.moveToFirst();
while(!queryt2.isAfterLast()) {
...
queryt2.moveToNext();
}
还记得在使用后关闭光标。(或使用 try-with-resources)
推荐阅读
- r - 使用 R 中的 M3C 处理来自 pca() 的数据帧中的“0”和“-inf”
- ssh - 通过 SSH 从本地终端获取 DISPLAY 环境变量到 Visual Studio Code 终端
- android - Android Studio:无法找到亚行
- sql - 查询后基于 ID 和组的作业所用时间
- azure - 使用 ARM 模板创建/更新 Azure 集成帐户
- css - 如何在引导程序中制作一个标题和每行 4 个单元格的表格?
- excel - csv格式用excel打开时隐藏小数部分
- swift - 快速创建弱选择器/函数
- java - Jmeter抛出NoSuchMethodException,但该方法确实存在
- android - 为什么两个以上的 android 风格维度不能正常工作?