gpt4 book ai didi

java - Android Sqlite 选择查询值是否为零或 0

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:48 25 4
gpt4 key购买 nike

我正在尝试编写一个获取查询的程序,该查询将显示类(class)表中的数据,如果值为:

course_id=0
or
semester_id=0
or
level_id=0
or
level_code=Select level
or
grade=Grade

因此,应显示具有上述任何值的任何行:

public List<Courses> getListCourseError() {
Courses courses = null;
List<Courses> coursesList = new ArrayList<>();
openDatabase();
Cursor cursor = mDatabase.rawQuery("SELECT * FROM COURSES WHERE semester_id=0 OR level_id=0 OR level_code=Select level OR grade=Grade", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
courses = new Courses(cursor.getInt(0), cursor.getInt(1), cursor.getString(2), cursor.getInt(3), cursor.getInt(4), cursor.getString(5), cursor.getInt(6), cursor.getString(7), cursor.getInt(8), cursor.getInt(9));
coursesList.add(courses);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return coursesList;
}

谢谢

最佳答案

我认为您的问题是字符串值必须用引号引起来。您也不包括 course_id 为 0。

因此,而不是“从学期_id=0或level_id=0或level_code=选择级别或等级=成绩的类(class)中选择*”

使用:-

"SELECT * FROM COURSES WHERE course_id=0 OR semester_id=0 OR level_id=0 OR level_code='Select level' OR grade='Grade'"

但是上面是 SQL 注入(inject)的候选者,所以实际上您应该使用选择参数(第二个参数),它将代表您正确包含字符串。所以更正确的解决方案是利用:-

String[] selectionargs = new String[]{"0","0","0","Select level", "Grade"};
Cursor cursor = mDatabase.rawQuery("SELECT * FROM COURSES WHERE course_id=? semester_id=? OR level_id=? OR level_code=? OR grade=?", selectionargs);

但是,建议仅在需要时使用 rawQuery 方法,并使用方便的 query 方法。这将是:-

String whereclause = "course_id=? OR semester_id=? OR level_id=? OR level_code=? or grade=?";
String[] whereargs = new String[]{"0","0","0","Select level", "Grade"};
Cursor cursor = mDatabase.query(
"COURSES",
null, //<<<< all columns (else String[] of columns)
whereclause, //<<<< WHERE clause without the WHERE keyword
whereargs, //<<<< arguments to replace ?'s
null, //<<<< GROUP BY clause
null, //<<<< HAVING clause
null //<<<< ORDER BY clause
);

注释- null 导致相应参数被忽略/默认(表名不能为 null)。例如columns(第二个参数)为 null 默认为所有列,即 *

  • 有许多不同的查询方法签名。请参阅SQLiteDatabase

  • 上面的代码是原则性代码,尚未经过测试,因此可能存在一些错误。

关于java - Android Sqlite 选择查询值是否为零或 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49701243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com