一、SQLite3 中limit、offset使用说明 假设表列值为 0,1...9(假设由select * from <table_name>获得); LIMIT 子句限定行数的最大值。负的 LIMIT 表示无上限。后跟可选的 OFFSET 说明跳过结果集中的前多少行。在一个复合查询中, LIMIT子句只允许出现在最终 SELECT 语句中。限定对于所有的查询均适用,而不仅仅是添加了 LIMIT 子句的那一行。注意 OFFSET 关键字用于LIMIT 子句中,则限制值是第一个数字,而偏移量(offset)是第二个数字。若用逗号替代 OFFSET 关键字,则偏移量是第一个数字而限制值是第二个数字。
1. select <列名/ *> from <table_name> limit 6【limit :限制值】 结果: 0,1...5; (前 6 条数据)
2. select <列名/ *> from <table_name> limit 6 offset 2 【limit :限制值 ;offset :偏移量】 结果: 2,3...7; (从 0 开始偏移 2 个后的 6 条数据)
3. select <table_name> limit 2,6 【偏移量,限制值】 结果:同 2
4. delete from <table_name> where rowid in(select rowid from <table_name> limit 1 offset 4) 结果:删除第五行
limit 1:删除 1 行 offset 4:偏移 4 行
二、Sqlite3中去掉多余的重复记录 5. select distinct <table_name> 说明:加上关键字distinct会去掉多余的重复记录
三、排序
1. 升序: select <列名/ *> from<table_name> order by <列名/ *>
2.降序: select<table_name> order by<列名/*> DESC 四、在使用API:sqlite3_get_table获取数据时,记得对应用sqlite3_free_table函数释放占用的内存,因为sqlite3_get_table包含malloc函数申请内存的处理,如若不用sqlite3_free_table会内存泄露。同样对pzErrmsg也要用sqlite3_free释放内存。
int sqlite3_get_table( sqlite3 *db,/* An open database */ const char *zSql,/* SQL to be evaluated */ char ***pazResult,/* Results of the query */ int *pnRow,/* Number of result rows written here */ int *pnColumn,/* Number of result columns written here */ char **pzErrmsg /* Error msg written here */ ); void sqlite3_free_table(char **result);
注:更多直接浏览Sqlite3官网 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|