欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中的sqlite查询数据时去掉重复值的方法实例

程序员文章站 2022-03-23 13:46:13
1、方式一: /** * 参数一:是否去重 * 参数二:表名 * 参数三:columns 表示查询的字段,new st...

1、方式一:

    /**
     * 参数一:是否去重
     * 参数二:表名
     * 参数三:columns 表示查询的字段,new string[]{model}表示查询该表当中的模式(也表示查询的结果)
     * 参数思:selection表示查询的条件,phone_number+" = ?" 表示根据手机号去查询模式
     * 参数五:selectionargs 表示查询条件对应的值,new string[]{phonenumber}表示查询条件对应的值
     * 参数六:string groupby 分组
     * 参数七:string having
     * 参数八:orderby 表示根据什么排序,
     * 参数九:limit 限制查询返回的行数,null表示无限制子句
     **/
    cursor cursor = readabledatabase.query(true,table_name, new string[]{description,id,image_url,latitude,longitude,name,need_audio,spot_type,tgroup,audio_name,area_name}, area_name + " = ?", new string[]{areaname}, null, null, null,null);

全部查询代码如下:

  /**
   * 根据景区名称查询景点数据
   * @param areaname
   * @return 0:未查询到拦截模式(也就是该手机号没有设置拦截模式) 1:拦截短信 2:拦截电话 3:拦截所有
   **/
  public list<scenicspot> getscenicareas(string areaname){
    arraylist<scenicspot> scenicspotlist = new arraylist<>();
    string model = "0";
    sqlitedatabase readabledatabase = msmarttoursqliteopenhelper.getreadabledatabase();
    /**
     * 参数一:是否去重
     * 参数二:表名
     * 参数三:columns 表示查询的字段,new string[]{model}表示查询该表当中的模式(也表示查询的结果)
     * 参数思:selection表示查询的条件,phone_number+" = ?" 表示根据手机号去查询模式
     * 参数五:selectionargs 表示查询条件对应的值,new string[]{phonenumber}表示查询条件对应的值
     * 参数六:string groupby 分组
     * 参数七:string having
     * 参数八:orderby 表示根据什么排序,
     * 参数九:limit 限制查询返回的行数,null表示无限制子句
     **/
    cursor cursor = readabledatabase.query(true,table_name, new string[]{description,id,image_url,latitude,longitude,name,need_audio,spot_type,tgroup,audio_name,area_name}, area_name + " = ?", new string[]{areaname}, null, null, null,null);
    while (cursor.movetonext()){
      scenicspot scenicspot = new scenicspot();
      string description = cursor.getstring(cursor.getcolumnindex(description));
      string id = cursor.getstring(cursor.getcolumnindex(id));
      string image_url = cursor.getstring(cursor.getcolumnindex(image_url));
      string latitude = cursor.getstring(cursor.getcolumnindex(latitude));
      string longitude = cursor.getstring(cursor.getcolumnindex(longitude));
      string name = cursor.getstring(cursor.getcolumnindex(name));
      string need_audio = cursor.getstring(cursor.getcolumnindex(need_audio));
      string spot_type = cursor.getstring(cursor.getcolumnindex(spot_type));
      string tgroup = cursor.getstring(cursor.getcolumnindex(tgroup));
      string audio_name = cursor.getstring(cursor.getcolumnindex(audio_name));
      string area_name = cursor.getstring(cursor.getcolumnindex(area_name));
      scenicspot.setdescription(description);
      scenicspot.setid(id);
      scenicspot.setimageurl(image_url);
      scenicspot.setlatitude(latitude);
      scenicspot.setlongitude(longitude);
      scenicspot.setname(name);
      scenicspot.setneedaudio(need_audio);
      scenicspot.setspottype(spot_type);
      scenicspot.settgroup(tgroup);
      scenicspot.setaudioname(audio_name);
      scenicspot.setareaname(area_name);
      scenicspotlist.add(scenicspot);
    }
    cursor.close();
    readabledatabase.close();
    return scenicspotlist;
  }

方式二:

string sql = "select distinct "
   + typename
   + " from "
   + table_name 
   + " order by " + type + " asc";
  cursor c = db.rawquery(sql, null);

完整代码:

 /**
 * @return 所有组织结构名称
 **/
 public static list<string> querytypenames() {
 synchronized (databasehelper.lock) {
  list<string> types = null;
  sqlitedatabase db = databasehelper.getinstance().getreadabledatabase();
  try {
  string sql = "select distinct "
   + typename
   + " from "
   + table_name 
   + " order by " + type + " asc";
  cursor c = db.rawquery(sql, null);
  while (c.movetonext()) {
   string type = c.getstring(c.getcolumnindex(typename));
   if (types == null) {
   types = new arraylist<string>();
   }
   if (type != null && type.length() > 1) {
   types.add(type);
   }
  }
  db.close();
  return types;
  } catch (exception e) {
  db.close();
  }
  return types;
 }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接