当前位置: 首页 > 知识库问答 >
问题:

光标只能选择具有不同值的单元格

海景曜
2023-03-14

我想要,我的光标移动到下一个具有不同内容的单元格,我想要光标跳过所有已经存在值的单元格。

例如,我们有列:啤酒,汽车,汽车,房子,啤酒,树(KEY_AREA)

光标应选择:Beer、Car、House、Tree和skip 1 Car和1 Beer。

        Cursor cursor = database.query(DBHelper.TABLE_AREA,
                columns,
                null,
                null,
                null,
                null,
                null,
                null);

        if (cursor.moveToFirst()) {
            do {
                Area_Names.add(cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.KEY_AREA)));
            }
            while (cursor.moveToNext());

        } else
            Log.d("mLog", "0 rows");
        cursor.close();

共有1个答案

郎恺
2023-03-14

因为您只对列DBHelper.KEY_AREA感兴趣,所以您可以使用query()的重载,它的第一个参数是一个布尔值,指示您是否想要不同的结果。

在您的情况下,您应该通过true:

String[] columns = new String[] {DBHelper.KEY_AREA};
Cursor cursor = database.query(
    true,
    DBHelper.TABLE_AREA,
    columns,
    null,
    null,
    null,
    null,
    null,
    null
);

此外,您不需要cursor.getColnIndexOrThrow(DBHelper.KEY_AREA)来获取列的索引。
您的查询只返回1列,您可以安全地使用0作为其索引:

Area_Names.add(cursor.getString(0));
 类似资料:
  • 我有一个业务表,每个业务最多可以有3个电话号码。我想查找任何重复的电话号码,但由于电话号码在不同的列中,我认为无法使经典的查询工作。 示例数据: 在本例中,我希望将记录1、2和3标识为相同。简单地将电话号码555-551-5555标识为一个重复的号码就可以了,因为我可以做一个子查询,或者呼叫程序可以使用该电话号码并发送一个新的查询,获得3个电话列中任何一个列中的所有记录555-551-5555。

  • 问题内容: 我有一张桌子,像这样: 我想选择具有相同基因座和染色体的所有行。例如,第3行和第4行。一次可能有2个以上,并且它们可能不是按顺序排列的。 我尝试了这个: 但是,即使重复,它总是返回第3行,从不返回第4行。我想我缺少明显而简单的东西,但我茫然。 有人可以帮忙吗? 问题答案: 您需要了解,当您在查询中包含内容时,您是在告诉SQL合并行。您将为每个唯一值获得一行。在随后过滤这些组。通常,您可

  • 问题内容: 在SQL中,将行复制到另一个(备份)表中。如果备份表具有不同的结构(或不同的列名称),这可能吗?如果没有,实现此目标的最佳方法是什么? 这是我想做的:具有columns 。我想将一些行从该表复制到另一个具有column的表。内容进入,对等 问题答案: 该 列名 不事可言,只要该 数据类型 相匹配。 如果列的数据类型不匹配,请尝试相应地强制转换值。 只需尝试 使用小的虚拟表。确保明确列出

  • 问题内容: 在XML文档中,我具有共享相同名称的元素,但是属性的值定义了它是什么类型的数据,并且我想从文档中选择所有具有特定值的元素。我是否需要使用XPath(如果可以,您是否可以建议正确的语法)还是有更优雅的解决方案? 这是一些示例XML: 我想选择类型为的所有子代标签的内容。 PS-我正在尝试使用PHP与Netflix API进行接口-这对我的问题无关紧要,但是如果您想提出一种更好的方法,我非

  • 问题内容: 该主题的解决方案使我不知所措。 我有一个看起来像的表格(除与我的问题无关的其他字段之外): 名称,卡号,会员类型 现在,我想要一个显示卡号和成员类型相同的行的视图。这两个字段都是整数。名称为VARCHAR。名称不是唯一的,并且相同的名称也应显示重复的卡号,会员类型。 即,如果下表是表格: 我想要: 只需按卡号排序即可使其对人类有用。 最有效的方法是什么? 问题答案: 由于您提到的名称可

  • 我有一个表,它有4列()gender具有与每个客户链接的唯一值:、或。 该部门与每种产品(男性或女性)都有独特的价值 我做了一个复杂的过程。首先,使用客户信息将male和其他客户分开(创建了两个表CUST_MALEY和cust_other) 如果CUST_MALEY表中有客户,则使用join,返回men division products行(其中division='men');如果cust_oth