关于置顶

188 阅读1分钟

置顶是我们在开发中常见的开发需求,我这篇文章来介绍一下我对置顶功能的实现

CREATE TABLE `tb_top`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `top` datetime NULL DEFAULT NULL COMMENT '置顶字段',
  `top_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

插入数据

INSERT INTO `tb_top` VALUES (1, '2022-07-04 10:23:04', '1');
INSERT INTO `tb_top` VALUES (2, NULL, '2');
INSERT INTO `tb_top` VALUES (3, NULL, 'hello');
INSERT INTO `tb_top` VALUES (4, '2022-07-04 10:25:52', 'null');

当点击置顶的时候给字段 top 设置传入数据为当前时间

SELECT * FROM `tb_top` ORDER BY top DESC ,id DESC

QQ截图20220704102741.png

这样获取数据时就是可以实现置顶,并按时间顺序排序

有更好的方案欢迎各位大佬评论