Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menggunakan kaedah pertanyaan had dalam mysql

Bagaimana untuk menggunakan kaedah pertanyaan had dalam mysql

WBOY
WBOYke hadapan
2023-05-27 15:05:361754semak imbas

Latar Belakang

Semasa penyahpepijatan bersama projek baru-baru ini, pepijat dalam pertanyaan paging telah ditemui Data dalam pertanyaan paging sentiasa gagal ditemui atau ditemui berulang kali.

Pangkalan data mempunyai sejumlah 14 rekod.

Bagaimana untuk menggunakan kaedah pertanyaan had dalam mysql

Jika anda mengikuti 10 item setiap halaman. Kemudian hasil carian SQL jumlah halaman pertama dan halaman kedua adalah seperti berikut.

Kemudian masalah datang apabila menanyakan halaman pertama dan kedua, muncul dengan rekod 11, 12, dan 13, dan tidak muncul dengan 4. Rekod . Mengapa saya tidak selalu dapat mencari data? ? ?

Bagaimana untuk menggunakan kaedah pertanyaan had dalam 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');

Menyelesaikan masalah

Seperti yang dapat dilihat daripada hasil pertanyaan, hasil pertanyaan jelas tidak disusun mengikut lajur tertentu (Ia tidak kemas).

Kemudian adakah cukup dengan hanya menambah peraturan pengisihan ? Dengan sikap mencuba, ia benar-benar berhasil.

Bagaimana untuk menggunakan kaedah pertanyaan had dalam mysql

Analisis masalah

Mengapa pertanyaan had muncul tanpa menambah susunan oleh?Pertanyaan halaman sentiasa mempunyai data yang tidak ditemui atau ditemui berulang kali? Adakah terdapat pengisihan perintah tersirat?

Pada masa ini terangkan muncul.

Bagaimana untuk menggunakan kaedah pertanyaan had dalam mysql

Indeks mempunyai dua fungsi: pengambilan semula, isih

Oleh kerana kedua-dua SQL menggunakan indeks yang berbeza (peraturan pengumpulan) , perkara di atas masalah akan berlaku apabila had indeks dikeluarkan, dan masalah itu diselesaikan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kaedah pertanyaan had dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam