首页 > 后端开发 > php教程 > 求救:mysql 如何根据给定的 ID顺序查找结果?

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-10-10 11:56:23
原创
1223 人浏览过

各位大神,现在我遇到了一个难题需要你们的帮助。

有下面两个表
post表:文章表。
record表:记录表,用于记录用户阅读顺序。

record表 根据用户的阅读文章顺序用一个字段 postid 记录 post 表的主键ID,既 record.postid 的外键为 post.id 。

现在需要根据 record 表里的 postid 查找 post表的文章。(假设用记阅读顺序为:'文章1,文章2,文章2,文章3,文章3' 允许文章重复。)
开始我用

<code>SELECT *
FROM post
WHERE id IN (postid1,postid2,postid2,postid3,postid3);</code>
登录后复制
登录后复制

查找结果只能查找 postid1,postid2,postid3 的文章。

现在想要的业务逻辑是:
1:根据用户的阅读记录查找post表文章。
2:允许重复。

比如用户阅读的文章读顺序为:'文章1,文章2,文章2,文章3,文章3',查找 post 表出来的结果为:post.id1, post.id2,post.id2,post.id2,post.id3。

注:考虑过用 FOR 循环

<code> for (.....){
      ...
      变量 数组x;
      数组x添加 SELECT * FROM post WHERE id = postidx;
      ....
 }</code>
登录后复制
登录后复制

但又担心效率问题。

回复内容:

各位大神,现在我遇到了一个难题需要你们的帮助。

有下面两个表
post表:文章表。
record表:记录表,用于记录用户阅读顺序。

record表 根据用户的阅读文章顺序用一个字段 postid 记录 post 表的主键ID,既 record.postid 的外键为 post.id 。

现在需要根据 record 表里的 postid 查找 post表的文章。(假设用记阅读顺序为:'文章1,文章2,文章2,文章3,文章3' 允许文章重复。)
开始我用

<code>SELECT *
FROM post
WHERE id IN (postid1,postid2,postid2,postid3,postid3);</code>
登录后复制
登录后复制

查找结果只能查找 postid1,postid2,postid3 的文章。

现在想要的业务逻辑是:
1:根据用户的阅读记录查找post表文章。
2:允许重复。

比如用户阅读的文章读顺序为:'文章1,文章2,文章2,文章3,文章3',查找 post 表出来的结果为:post.id1, post.id2,post.id2,post.id2,post.id3。

注:考虑过用 FOR 循环

<code> for (.....){
      ...
      变量 数组x;
      数组x添加 SELECT * FROM post WHERE id = postidx;
      ....
 }</code>
登录后复制
登录后复制

但又担心效率问题。

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

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

可以提供一种思路:用in的方式从数据库取出数据,用map建立对应关系map.put(postid,post)。再按照id的顺序取出后组装需要的数据类型

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
java可以做为web的后端吗?
来自于 1970-01-01 08:00:00
0
0
0
安装JAVA
来自于 1970-01-01 08:00:00
0
0
0
无法安装java
来自于 1970-01-01 08:00:00
0
0
0
java - php调取webservice的map类型,如果封装?
来自于 1970-01-01 08:00:00
0
0
0
这个是Java语言的吗
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板