作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的查询,但我一辈子也想不通。
我有一个包含“thread_id”和“messages”列的(简化的)“messages”表
我还有一个线程列表,每个线程需要 10 个结果。
$list = "1,2,3,4";
我会做 $db->select()->from("messages")->where("thread_id IN ('?')",$list)->limit(10);
但这只限制了总数中的 10 个,我如何在 ZF 1.11 查询方法中从每个 thread_id 中提取 10 个?
最佳答案
你可以使用这个查询得到想要的结果
SELECT * FROM
(SELECT i1.*
FROM threadmessage i1
LEFT JOIN threadmessage i2
ON (i1.threadid = i2.threadid
AND i1.messageid < i2.messageid
)
GROUP BY i1.messageid
HAVING COUNT(*) < 5
ORDER BY i1.messageid) A
WHERE A.threadid IN (3,4);
我创建了一个 SQL fiddle
您也可以使用query
方法在aend 中执行它。
$stmt = $db->query($sql);
$result = $stmt->fetchAll();
这是典型的“每组 N 个”类型的查询。您可以从这些帖子中获取更多详细信息
How do I select multiple items from each group in a mysql query?
How to SELECT the newest four items per category?
Retrieving the last record in each group
关于php - ZF 1 Mysql WHERE IN查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18951144/
我是一名优秀的程序员,十分优秀!