gpt4 book ai didi

android - SQLite Count where 查询

转载 作者:行者123 更新时间:2023-11-29 16:20:01 26 4
gpt4 key购买 nike

我使用简单的 sql lite 查询从表中获取计数值。

Cursor cursor = db.rawQuery("SELECT sum(name2) FROM " + TABLE_NAME, null);
if (cursor.moveToFirst()) {
return cursor.getInt(0);
}
return cursor.getInt(0);

效果不错

但是当我在选择查询中添加一个 where 子句时

Cursor cursor = db.rawQuery("SELECT sum(name2) FROM " + TABLE_NAME + "WHERE name in (" + k + ")", null);
if(cursor.moveToFirst()) {
return cursor.getInt(0);
}
return cursor.getInt(0);

进程意外停止......

最佳答案

WHERE 前面缺少一个空格:... + TABLE_NAME + "WHERE name ...

但是你的代码有很多错误:

  • 既然有像 query(table, columns, selection, selectionArgs, groupBy, having, orderBy) 这样的好方法,为什么还要使用 rawQuery()使您免于构建有 SQL 注入(inject)风险的查询字符串?甚至 rawQuery() 也将查询参数作为第二个参数。

  • 您在哪里关闭光标?你会以这种方式泄漏内存。

  • 如果 cursor.moveToFirst() 返回 false 并且您执行了 if block 之后的行,会发生什么情况?这会崩溃。

关于android - SQLite Count where 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559157/

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