Home > Database > Mysql Tutorial > body text

How to use limit query method in mysql

WBOY
Release: 2023-05-27 15:05:36
forward
1796 people have browsed it

Background

Recently, during project joint debugging, a bug in paging query was discovered. Page query always has data that cannot be found or is found repeatedly.

The database has a total of 14 records.

How to use limit query method in mysql

If you follow 10 items per page. Then the query SQL sum results of the first page and the second page are as follows.

Then here comes the problem. When querying the first and second pages, records of 11, 12, and 13 appear , and does not appear 4 Record. Why can’t I always find data? ? ?

How to use limit query method in mysql

SQL

DROP TABLE IF EXISTS `creative_index`;
CREATE TABLE `creative_index` (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `creative_id` bigint(20) NOT NULL COMMENT 'creative_id',
  `name` varchar(256) DEFAULT NULL COMMENT 'name',
  `member_id` bigint(20) NOT NULL COMMENT 'member_id',
  `product_id` int(11) NOT NULL COMMENT 'product_id',
  `template_id` int(11) DEFAULT NULL COMMENT 'template_id',
  `resource_type` int(11) NOT NULL COMMENT 'resource_type',
  `target_type` int(11) NOT NULL COMMENT 'target_type',
  `show_audit_status` tinyint(4) NOT NULL COMMENT 'show_audit_status',
  `bound_adgroup_status` int(11) NOT NULL COMMENT 'bound_adgroup_status',
  `gmt_create` datetime NOT NULL COMMENT 'gmt_create',
  `gmt_modified` datetime NOT NULL COMMENT 'gmt_modified',
  PRIMARY KEY (`id`),
  KEY `idx_member_id_product_id_template_id` (`member_id`,`product_id`,`template_id`),
  KEY `idx_member_id_product_id_show_audit_status` (`member_id`,`product_id`,`show_audit_status`),
  KEY `idx_creative_id` (`creative_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试表';

-- ----------------------------
-- Records of creative_index
-- ----------------------------
INSERT INTO `creative_index` VALUES ('1349348501', '511037002', '1', '1', '1', '1000695', '26', '1', '7', '0', '2023-03-16 22:12:56', '2023-03-24 23:38:49');
INSERT INTO `creative_index` VALUES ('1349348502', '511037003', '2', '1', '1', '1000695', '26', '1', '7', '1', '2023-03-16 22:15:29', '2023-03-24 21:23:33');
INSERT INTO `creative_index` VALUES ('1391561502', '512066002', '3', '1', '1', '1000695', '26', '1', '7', '0', '2023-03-23 23:37:34', '2023-03-24 21:24:04');
INSERT INTO `creative_index` VALUES ('1394049501', '511937501', '4', '1', '1', '1000942', '2', '1', '0', '0', '2023-03-24 14:00:46', '2023-03-25 15:19:37');
INSERT INTO `creative_index` VALUES ('1394221002', '511815502', '5', '1', '1', '1000694', '26', '1', '7', '0', '2023-03-23 17:00:41', '2023-03-24 21:23:39');
INSERT INTO `creative_index` VALUES ('1394221003', '511815503', '6', '1', '1', '1000694', '26', '1', '3', '0', '2023-03-23 17:22:00', '2023-03-24 21:23:44');
INSERT INTO `creative_index` VALUES ('1394257004', '512091004', '7', '1', '1', '1000694', '26', '1', '7', '0', '2023-03-23 17:23:21', '2023-03-24 21:24:11');
INSERT INTO `creative_index` VALUES ('1394257005', '512091005', '8', '1', '1', '1000694', '26', '1', '3', '0', '2023-03-23 17:31:05', '2023-03-25 01:10:58');
INSERT INTO `creative_index` VALUES ('1403455006', '512170006', '9', '1', '1', '1000694', '26', '1', '0', '0', '2023-03-25 15:31:02', '2023-03-25 15:31:25');
INSERT INTO `creative_index` VALUES ('1403455007', '512170007', '10', '1', '1', '1000695', '26', '1', '0', '0', '2023-03-25 15:31:04', '2023-03-25 15:31:28');
INSERT INTO `creative_index` VALUES ('1406244001', '512058001', '11', '1', '1', '1000694', '26', '1', '3', '0', '2023-03-23 21:28:11', '2023-03-24 21:23:56');
INSERT INTO `creative_index` VALUES ('1411498502', '512233003', '12', '1', '1', '1000694', '26', '1', '0', '0', '2023-03-25 14:34:37', '2023-03-25 17:00:24');
INSERT INTO `creative_index` VALUES ('1412288501', '512174007', '13', '1', '1', '1000694', '26', '1', '7', '0', '2023-03-25 01:11:53', '2023-03-25 01:12:34');
INSERT INTO `creative_index` VALUES ('1412288502', '512174008', '14', '1', '1', '1000942', '2', '1', '0', '0', '2023-03-25 11:46:44', '2023-03-25 15:20:58');
Copy after login

Solution to the problem

As can be seen from the query results, the query results are obviously not sorted according to a certain column (verychaos).

Then is it enough to add a sorting rule?? With the attitude of giving it a try, it really worked out.

How to use limit query method in mysql

Analysis problem

Why limit query will appear without adding order byPaging query always has data that cannot be found or is found repeatedly? Is there an implicit order sorting?

At this timeexplain appears.

How to use limit query method in mysql

The index has two functions: retrieval and sorting

Because the two SQLs use different indexes (sorting rules) , the above problem will occur when the index limit is released, and the problem is solved.

The above is the detailed content of How to use limit query method in mysql. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template