table 需要进需要行操作的表的名称

columns 需要查询的列,如String[]{“name”,”sex”},表示的是查询name和sex两个列

selection 查询的条件子句,如”name = \”Tom\”“,表示只查询name这列中Tom的数据

​ 如果写法是“name=?”,表示使用占位符,具体的查询的子条件在selectionArgs中体现

selectionArgs 与selection中的?占位符相对应,如:new String[]{“Tom”,”Jerry”},表示查询name列中的

​ Tom和Jerry的数据,这样操作可以防止SQL注入攻击

groupBy 用于设定返回行的分组方式,相当于SQL语句中的GROUP BY 关键字。传递null表示返回的

​ 行不会被分组。

having 决定哪一行被放到Cursor中的过滤器。如果使用了行分组,相当于SQL语句中的HAVING关

​ 键字。传递null会导致所有的行都包含在内,前提是groupBy属性也设置为null。

orderBy 用于排序

排序操作:就是填充最后一个字段**
填充规则就“ 列名   desc”,其中desc表示降序排列,asc是升序排列
如“name desc”就是对name的数据进行升序排列。

2.遇到的问题

排序报错:

排序之后的结果是721 520 120 1456 1234 1101

大概就是相同长度的数字进行排序,而总体没有进行排序,就会出现较大的数字没有出现在靠前的位置上。

报错原因:

我在设置表参数的时候,将数据类型设置成了TEXT DEFAULT了,对于TEXT DEFAULT的排序是按照text字段的首字符进行排序的,因而会出现排序不正确的现象。

解决方式:

我将数据类型改为了整形,即INTEGER,问题引刃而解了。

1.在安卓的帮助文档中,query函数的相关内容如下:其中各个参数的含义为:table 需要进需要行操作的表的名称columns 需要查询的列,如String[]{“name”,”sex”},表示的是查询name和sex两个列selection 查询的条件子句,如”name = \”Tom\”“,表示只查询name这列中Tom的数据​ 2.数据的增删查改(PRDU:Put、Read、Delete、Update) 背景知识: 上篇文章学习android保存文件,今天学习的是保存数据SQL数据库。相信大家对数据库都不陌生。对于大量重复的,有特定结构的数据的保存,用 SQL数据库 来保存是最理想不过了。 下面将用一个关于联系人的数据库Demo来具体学习。 具体知识: 1.定义Contract类 在创建SQL数据库之前,要创建Contract类。那什么是Contract类呢? 代码如下: Contract Class的定义:     Contract Class,又可以叫做C
SQLite 自定义函数,聚合,排序规则 1.使用自定义函数, 聚合以及排序规则的基本方法是使用回调函数.这些注册的函数的生命周期只存在于应用程序, 并不存储在数据库文件, 因此需要在每个连接建立时注册才可以在 SQL 进行使用. 2.排序规则SQLite 对结果集字段进行排序时, SQLite 使用比较操作符如 < 或 >= 在字段内对值进行比较, 第一件事就是根据存储...
1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。 2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少
 SQLiteDatabase db= DBHelper.getDB(); //查询出来的数据顺序与SQLite里面的排列顺序相同         Cursor cursor=db.query("notice_info", null, null, null, null, null,null); //查询出来SQLite里面数据按照ID由大到小排列         Cursor
文章目录背景前言需求解决过程表A 和 数据步骤1 获取序列步骤2 序列号 转换成 顺序步骤3 更新表的顺序字段步骤4 结果校验步骤5 初步优化-更新部分数据步骤6 测试-插入相同成绩最终代码 项目一开始定义使用轻量级数据库sqlite来处理数据, 用着用着发现想要做个排序功能 却发现sqlite没有现成的排序函数rank()等等, 使用排序后临时表的rowid也不行, 查询的出来的rowid是真实数据的,并不是临时表; 然后翻阅了百度,也没有找到个现成的。 这个节点换数据库就不现实,函数不也是
order by语句用于根据指定的列对结果集进行排序。 order by 语句默认按照升序对记录进行排序。 如果您希望按照降序对记录进行排序,可以使用 desc 关键字 二、以字母顺序显示name 语法:select * from personsorder by name; 三、以字母顺序显示name,并以数字顺序显示id 语法:select * fr...
有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。 还是典型的TOP K算法,解决方案如下: 顺序读取10个文件,按照hash(query)%10的结果将query写入到另外10个文件(记为)。这样新生成的文件每个的大小大约也1G(假设hash函数是随机的)。 找一台内存在2G左右的机器,依次对用ha...
---创建 备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' ---开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:...
@Query("SELECT * FROM AcmeTaxGoods WHERE qqlsh like :qqlsh ORDER BY cast(sphxh as '9999')") LiveData<List<AcmeTaxGoods>> getAllLiveByqqlsh(String qqlsh);//查询所有的 由于sphxh在模型类里面是String类型的。所有不可以直接用order by sphxh。需要用sphxh的值进行排序。就需要进行转换。 错误...
sql = "select * from "+MySQL.TABLE_BURNER+" order by _id asc"; sql = "select * from "+MySQL.TABLE_BURNER+" order by _id desc"; //得到查询后的游标
query(table,columns, selection, selectionArgs, groupBy, having, orderBy, limit) 方法各参数的含义: table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。 columns:要查询出来的列名。相当于select语句select关键字后面的部分. * 对应 new...
是的,可以使用UPDATE语句来修改某行数据的某个数据。例如: UPDATE table_name SET column_name = new_value WHERE condition; 其,table_name是要进行修改的表的名称,column_name是要进行修改的列名,new_value是要修改为的新值,condition是要满足的条件。 注意:在修改前,请务必备份数据,以免数据丢失。