gpt4 book ai didi

php - SELECT WHERE group id IN array ORDER BY 和 Group By

转载 作者:行者123 更新时间:2023-11-29 02:17:54 26 4
gpt4 key购买 nike

我制作了一个消息系统,每条消息都有一个唯一的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com