作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一个消息系统,每条消息都有一个唯一的 ID,还有一个类别来保持相关线程的绑定(bind)/链接。我将类别存储在一个数组中,我可以使用此 mysql 查询显示每条消息。
$getid = $link->prepare("SELECT * FROM `table` WHERE
category IN ('$array')
ORDER BY id DESC");
$getid->execute();
while($msg=$getid->fetch()) {
echo "<br />".$msg['id'];
}
上面的代码成功输出了数组中列出的类别 ID 中的每条消息。我试图只显示最近列出的,即每个类别中具有最大 ID 的消息。
我尝试按失败的类别分组,结果不正确。
$getid = $link->prepare("SELECT * FROM `table` WHERE
category IN ('$array')
GROUP BY category
ORDER BY id DESC");
$getid->execute();
while($msg=$getid->fetch()) {
echo "<br />".$msg['id'];
}
使用 MAX(id) 也失败了
$getid = $link->prepare("SELECT MAX(id) FROM `table` WHERE
category IN ('$array')
ORDER BY id DESC");
$getid->execute();
while($msg=$getid->fetch()) {
echo "<br />".$msg['id'];
}
我尝试了多种变体,数量太多,无法在此详述。我试图只显示任何给定类别中的最新消息(last id),最新的在最上面。
最佳答案
我认为像这样的子查询就可以做到。
select * from `table` T where T.category in ('$array') and
T.id = (select max(id) from `table` where category = T.category)
关于php - SELECT WHERE group id IN array ORDER BY 和 Group By,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36636469/
我是一名优秀的程序员,十分优秀!