建表语句
CREATE TABLE `tt` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`order_no` varchar(30) NOT NULL,
PRIMARY KEY (`id`),
KEY `order_no` (`order_no`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
批量造数据
DELIMITER $$
CREATE PROCEDURE process_test3()
BEGIN
DECLARE yourid INT;
SET yourid = 1;
WHILE yourid < 2000000 DO
INSERT INTO tt (order_no)
VALUES(yourid);
SET yourid=yourid+1;
END WHILE;
END;
CALL process_test3();
select distinct order_no from tt limit 50000,500
与
select distinct order_no from tt limit 50500,500
两者查询出来的数据一模一样,当然有其他方法可以替代,但是我不懂这种情况出现的原理是什么
去掉distinct结果就不一样嘛