首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制结果mysql在clausule中的位置

问限制结果mysql在clausule中的位置
EN

Stack Overflow用户
提问于 2013-12-26 12:54:46
回答 3查看 57关注 0票数 0

我试图理解如何将每个"post_id“的结果限制为5行。例如,我正在执行以下查询:

代码语言:javascript
复制
$posts_id = array('1','2','3','4');
$query = "SELECT * FROM comments WHERE IN post_id, $posts_id LIMIT 5";

如果我喜欢的话,它只限制了所有评论的5个结果。我希望为每个帖子获得最多5个结果,而不需要急切地加载,并将查询放在一个前端。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-26 12:58:41

您对IN工作方式的理解是错误的。相反,您可以使用UNION构建查询。

代码语言:javascript
复制
//omitting escaping to concentrate on idea:
$posts_id = array('1','2','3','4');
$limit    = 5;
$query = join(' UNION ALL ', array_map(function($id) use ($limit)
{
   return '(SELECT * FROM comments WHERE post_id='.$id.' LIMIT '.$limit.')';
}, $posts_id));
票数 1
EN

Stack Overflow用户

发布于 2013-12-26 13:01:50

尝试这个查询

代码语言:javascript
复制
$query = "SELECT * FROM comments WHERE post_id IN('1','2','3','4') LIMIT 0, 5";
票数 0
EN

Stack Overflow用户

发布于 2013-12-26 13:02:47

这是您应该在字符串中生成的查询,如果我正确地解释您的问题:

从注释中选择post_id IN ( 1,2,3,4)中的前5位

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20785254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档