gpt4 book ai didi

mysql - 如何使用 group by 子句选择随机行?

转载 作者:可可西里 更新时间:2023-11-01 07:48:47 24 4
gpt4 key购买 nike

我有下表

SQLFiddle

我试图做的是选择三个随机图像,但要确保没有两个图像具有相同的对象,我试图做的是执行 GROUP BY 和 ORDER BY rand() 但是失败了,因为它总是给我 cat1.jpg、dog1.jpg、box1.jpg(所有路径以 1 而不是其他结尾的图像)

fiddle 包括我运行的查询以及它如何不工作。

最佳答案

您需要的是随机聚合函数。目前的RDBMS中通常没有这样的功能。

类似的问题有been asked .

所以基本思想是打乱元素,然后分组,然后为每个组只选择每个组的第一行。如果我们修改链接上提供的其中一个答案,我们会得到这个。

select object_id, name, image_path
from
(SELECT images.image_path AS image_path, objects.id AS object_id, objects.name
FROM objects LEFT JOIN images ON images.object_id = objects.id
ORDER BY RAND()) as z
group by z.object_id, z.name

关于mysql - 如何使用 group by 子句选择随机行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28514736/

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