mysql 페이지 나누기 중복 데이터 가져오기

2110 단어 mysql
온라인에서 문제가 발생했다. mysql로 페이지를 나누어 데이터를 얻으면 중복된 데이터를 얻을 수 있다. 예를 들어 모두 1만 개의 데이터를 얻은 후에 페이지를 나누어 합치면 중복된 몇 개가 있고 매번 중복된 데이터는 그다지 같지 않다. 그러나 직접적으로 전체 데이터를 얻으면 문제가 없다. 데이터베이스 작성 문장은 다음과 같다.
CREATE TABLE point (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
    address varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '    ',
    create_time int(11) NOT NULL DEFAULT '0' COMMENT '    ',
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='   ';

페이지 데이터를 가져오는 sql은 다음과 같습니다.
select * from point order by create_time desc limit 0,10

열람한 후에 mysql에 하나의 특성이 있음을 발견했다. 만약order by의 필드가 unique가 아니라 값이 같은 줄이 있다면 이 데이터의 반환 순서는 미정이다. 이것은 msyql가 정렬을 할 때 같은 값의 상대적인 순서가 계속 변하지 않는다는 것을 보장할 수 없기 때문이다. 이 두 번의 조회는 데이터의 순서가 정해지지 않았기 때문에 한 줄의 데이터가 두 페이지에 나타난다.mysql 공식에서 관련 토론이 있습니다. 이것은 mysql의 특성입니다. 버그가 아니라 관심 있는 분들은 보셔도 됩니다.mysql 공식 토론

좋은 웹페이지 즐겨찾기