用乙個簡單例項,對遇到的問題覆盤一下。
1.新建測試表 test_order
create table test_order(
id int(11) not null auto_increment primary key,
name varchar(10) not null,
create_time datetime not null,
state int(1) default '1'
)
2.插入測試資料
-- ----------------------------
-- records of test_order
-- ----------------------------
insert into `test_order` values ('1', '張三', '2016-11-29 08:10:10', '1');
insert into `test_order` values ('2', '李四', '2016-11-30 12:10:10', '1');
insert into `test_order` values ('3', '趙一', '2016-11-30 14:10:10', '1');
insert into `test_order` values ('4', '錢二', '2016-11-29 14:00:00', '1');
insert into `test_order` values ('5', '周七', '2016-11-29 14:00:00', '1');
insert into `test_order` values ('6', '鄭八', '2016-11-29 14:00:00', '1');
insert into `test_order` values ('7', '王五', '2016-11-29 14:00:00', '1');
insert into `test_order` values ('8', '劉六', '2016-11-29 14:00:00', '1');
3.查詢資料(排序並分頁)
select name from test_order where state = 1 order by create_time limit 0, 4
結果為:
select name from test_order where state = 1 order by create_time limit 4, 4
結果為:
這2條sql都查出「劉六」出來了,出現重複的資料。
原因:由於order by 字段重複的資料導致的,建議將order by 後面的字段使用唯一的字段,或者使用2個字段組成唯一的。
oracle中排序和分頁的相互影響
如下sql select from select rownum rn t from select from pd model order by add date desc t where rownum 70 10 where rn 70 1 滿足要求的記錄總共有268條,但是傳入不同的引數查詢第60...
mysql 先排序再分組的sql語句實現
最近專案中有乙個需求,需要先分組,再排序的功能。搞了好久,經過敏大大 後台兄弟 指導,終於搞出來了,分享給大家 demo 學生資訊表 第一時間想到 sql select from t test group by name,type order by score desc 結果 發現,並不能滿足我們需...
mysql子查詢先排序再分組的問題
有表如下,要找到 family name 為 green 和 smith 的身高最高的兩個人的 given name。id family name given name height 1 smith mike 157 2 smith ashlin 165 3 smith eason 181 4 sm...