为了账号安全,请及时绑定邮箱和手机立即绑定

求救:mysql 如何根据给定的 ID顺序查找结果?

求救:mysql 如何根据给定的 ID顺序查找结果?

呼啦一阵风 2019-03-22 09:19:29
各位大神,现在我遇到了一个难题需要你们的帮助。有下面两个表post表:文章表。record表:记录表,用于记录用户阅读顺序。record表 根据用户的阅读文章顺序用一个字段 postid 记录 post 表的主键ID,既 record.postid 的外键为 post.id 。现在需要根据 record 表里的 postid 查找 post表的文章。(假设用记阅读顺序为:'文章1,文章2,文章2,文章3,文章3' 允许文章重复。)开始我用SELECT *FROM postWHERE id IN (postid1,postid2,postid2,postid3,postid3);查找结果只能查找 postid1,postid2,postid3 的文章。现在想要的业务逻辑是:1:根据用户的阅读记录查找post表文章。2:允许重复。比如用户阅读的文章读顺序为:'文章1,文章2,文章2,文章3,文章3',查找 post 表出来的结果为:post.id1, post.id2,post.id2,post.id2,post.id3。注:考虑过用 FOR 循环 for (.....){      ...      变量 数组x;      数组x添加 SELECT * FROM post WHERE id = postidx;      .... }但又担心效率问题。
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

SELECT P.*
FROM Post P
LEFT JOIN Record R ON R.PostID = P.ID
ORDER BY R.ID ASC

Record表记录阅读顺序,所以需要根据Record表的顺序来就排序


查看完整回答
反对 回复 2019-04-25
  • 2 回答
  • 0 关注
  • 482 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信