Android中的sqlite查询数据时去掉重复值的方法实例
程序员文章站
2022-06-23 14:56:32
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; } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接