gpt4 book ai didi

mysql - 用多个选择器选择多条记录还限制1条?

转载 作者:行者123 更新时间:2023-11-29 11:34:22 25 4
gpt4 key购买 nike

我必须根据不唯一的选择器返回多条记录。可供选择的表是 page_objects,每页有多个对象(父表)。

我有一个包含多个 page_id 的数组,我想返回每个 page_id 的最后编辑的 page_object。

不带 SELECT IN 的查询:

SELECT `object` FROM `page_objects` WHERE `f_page_id` = $iPage_id ORDER BY last_change DESC LIMIT 1;

我想要得到这样的东西:

SELECT `object` 
FROM `page_objects`
WHERE `f_page_id` IN ($iPage_id1,$iPage_id2,...) ORDER BY last_change DESC LIMIT 1;

我可以为此创建一个查询吗?

编辑

我注意到我的问题不太清楚。我想为每个给定的 page_id 返回一个 page_object。示例:

SELECT `f_page_id`, `page_object_id`, `object` 
FROM `page_objects`
WHERE `f_page_id` IN (1,2,3) ORDER BY last_change DESC LIMIT 1;

应该返回:

page_id    page_object_id    object
1 1 ...
2 7 ...
3 45 ...

与给定的 page_id 匹配的其他 page_objects 应该仅限于一个!因此,不应返回 page_object_id 2,它也是 id 为 1 的页面的 page_object,因为它不是最后编辑的。

最佳答案

您应该能够GROUP BY您的查询:

SELECT `f_page_id`, `page_object_id`, `object` 
FROM `page_objects`
WHERE `f_page_id` IN (1,2,3)
GROUP BY f_page_id
ORDER BY last_change DESC;

这样,所有对象首先按上次更改排序,然后按页面 ID 分组,因此,它将返回每页上次更改的对象。

关于mysql - 用多个选择器选择多条记录还限制1条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859031/

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