如何在没有 _id 必要列的情况下在 sqlite 和游标中使用 distinct?
how to use distinct in sqlite and cursor without _id essential column?
我有一个 table 我应该使用这个查询来获得正确答案:
select distinct IDPAGE,TIT from contents where NUM=1;
并将此游标发送到 cursorAdapter。如您所知,此游标中应该有一个 _id 列。如果没有,则应用程序未启动。但我只想区分我的 tables 而不是 _id col。我想要这样的查询:
select rowid _id distinct IDPAGE,TIT from contents where NUM=1;
在 sql 中,我可以使用 DENSE_RANK() 但不能在 sqlite 中使用。请帮助我...
Android 框架要求在某些游标中有一个唯一的 _id
列,但该列必须仅在该特定结果集中是唯一的。
因此,如果您有一个列在您选择的结果中是唯一的,您也可以将它用作 _id
列:
SELECT IDPAGE AS _id, IDPAGE, TIT FROM ... WHERE ...;
(不需要 DISTINCT,因为唯一列永远不会重复。)
如果您没有单个唯一列,则还必须从 table 中获取 rowid
(或任何命名的 INTEGER PRIMARY KEY 列)。要仍然获得其他列的不同值,您必须将 DISTINCT 替换为 GROUP BY:
SELECT MIN(rowid) AS _id, IDPAGE, TIT
FROM contents
WHERE NUM = 1
GROUP BY IDPAGE, TIT;
我有一个 table 我应该使用这个查询来获得正确答案:
select distinct IDPAGE,TIT from contents where NUM=1;
并将此游标发送到 cursorAdapter。如您所知,此游标中应该有一个 _id 列。如果没有,则应用程序未启动。但我只想区分我的 tables 而不是 _id col。我想要这样的查询:
select rowid _id distinct IDPAGE,TIT from contents where NUM=1;
在 sql 中,我可以使用 DENSE_RANK() 但不能在 sqlite 中使用。请帮助我...
Android 框架要求在某些游标中有一个唯一的 _id
列,但该列必须仅在该特定结果集中是唯一的。
因此,如果您有一个列在您选择的结果中是唯一的,您也可以将它用作 _id
列:
SELECT IDPAGE AS _id, IDPAGE, TIT FROM ... WHERE ...;
(不需要 DISTINCT,因为唯一列永远不会重复。)
如果您没有单个唯一列,则还必须从 table 中获取 rowid
(或任何命名的 INTEGER PRIMARY KEY 列)。要仍然获得其他列的不同值,您必须将 DISTINCT 替换为 GROUP BY:
SELECT MIN(rowid) AS _id, IDPAGE, TIT
FROM contents
WHERE NUM = 1
GROUP BY IDPAGE, TIT;