gpt4 book ai didi

java - SQL Java - 使用游标返回 10 行的简单查询

转载 作者:行者123 更新时间:2023-12-02 07:38:35 24 4
gpt4 key购买 nike

我有一个包含 70 条记录的 SQLite 数据库,希望使用游标获取其中 10 条记录。

我拥有的 10 条记录的 KEY_ROWID(主键)为 2, 3, 15, 23, 35, 50, 51, 60, 61, 64

检索这些记录的 SQL 是什么?

这是我到目前为止所拥有的,但我认为这不会起作用......

我应该使用 WHERE 还是 HAVING 子句?

任何帮助都会很棒。

public Cursor getTopTen() {

String ids = "2, 3, 15, 23, 35, 50, 51, 60, 61, 64";

SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(DATABASE_TABLE);

String[] columns = new String[] { KEY_ROWID, RECIPE, DESC, PREPTIME,
COOKTIME, SERVES, CALORIES, FAT, CATEGORY, FAV };

Cursor myCursor = queryBuilder.query(myDataBase, columns, KEY_ROWID + "="
+ "'" + ids + "'", null, null, null, null);

return myCursor;
}

在 SQL 中,上面的 java 是:

SELECT * FROM myDataBase WHERE KEYROWID = "2, 3, 15, 23, 35, 50, 51, 60, 61, 64".

最佳答案

SQL 应该是:

SELECT * FROM myDataBase WHERE KEYROWID IN (2, 3, 15, 23, 35, 50, 51, 60, 61, 64)

当您想要获取列值位于特定值列表中的所有行时,您必须使用 IN operator .

所以你的代码应该是:

public Cursor getTopTen() {

String ids = "2, 3, 15, 23, 35, 50, 51, 60, 61, 64";

SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(DATABASE_TABLE);

String[] columns = new String[] { KEY_ROWID, RECIPE, DESC, PREPTIME,
COOKTIME, SERVES, CALORIES, FAT, CATEGORY, FAV };

Cursor myCursor = queryBuilder.query(myDataBase, columns, KEY_ROWID + " IN ("
+ ids + ")", null, null, null, null);

return myCursor;
}

关于java - SQL Java - 使用游标返回 10 行的简单查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874970/

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