mysql中排序再分頁遇到的重複資料

2021-07-25 01:53:32 字數 1568 閱讀 1581

用乙個簡單例項,對遇到的問題覆盤一下。

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...