前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >留言模块,MySQL查询数据问题

留言模块,MySQL查询数据问题

作者头像
简单点
发布2022-09-22 10:17:03
1.6K0
发布2022-09-22 10:17:03
举报
文章被收录于专栏:vaevae

记录一下个人在写博客“留言模块”遇到的问题。

由于本想使用一张表完成留言数据的查询,其中包括留言ID和父留言ID字段。通过父留言ID判断名下是否包含子级;最后返回给前端展示。

但在这就遇到了些问题,如果留言包含回复的话,一张表的话就必须全部查询出来,然后再递归排序。但留言数据过多会导致查询速度慢,而且只能前端分页;果断就放弃了这个想法。

看了看百度发现,可以使用两张表,一张留言表,一张留言回复表,通过留言ID,主外键绑定起来。然后嵌套子查询,实现分页查询。

留言表:

留言回复表:

PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.myvue.mapper.leaveMapper">

<resultMap id="extOrganMap" type="com.example.myvue.pojo.LeaveWord">

<result property="leaveWordId" column="leave_id"/>

<result property="leaveWordUserId" column="leave_user_id"/>

<collection column="leave_reply" property="leaveWordReplys" resultMap="replyMap">

<id column="leave_reply_id" property="id"/>

</collection>

</resultMap>

<resultMap id="replyMap" type="com.example.myvue.pojo.LeaveWordReply">

<id column="leave_reply_id" property="id"/>

<result property="leaveWordFatherId" column="leave_father_id"/>

<result property="leaveWordReplyId" column="leave_reply_id"/>

<result property="leaveWordReplyContent" column="leave_reply_content"/>

</resultMap>

<!--获取留言-->

<select id="getLeaveWord" resultMap="extOrganMap">

select `leave_word`.*,

`leave_reply`.*

from `leave`

left join `leave_reply` on leave_reply.leave_father_id = `leave_word`.leave_id

where `leave_word`.leave_id in (select z.leave_id from (select x.leave_id from `leave_word` as x order by x.leave_date asc limit #{page} ,#{limit}) as z)

order by `leave_word`.leave_date desc, `leave_reply`.leave_reply_date desc;

</select>

</mapper>

最后结果就是实现了留言的查询,并且可以使用分页,无需一次性把数据全部查询出来而影响查询速度。 原文地址

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档