我有一个表,应该使用此查询获得正确答案:
select distinct IDPAGE,TIT from contents where NUM=1;
并将此游标发送到cursorAdapter。如您所知,此光标中应为_id列。如果不是,则应用程序无法启动。但是我只想区分我的表而不是_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。)
如果没有单个唯一列,则还必须从表中获取
rowid
(或任何名为INTEGER PRIMARY KEY的列)。为了仍然获得其他列的不同值,您必须将DISTINCT替换为GROUP BY:SELECT MIN(rowid) AS _id, IDPAGE, TIT
FROM contents
WHERE NUM = 1
GROUP BY IDPAGE, TIT;