gpt4 book ai didi

java - 我需要了解如何从数据库中获取唯一的随机行

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

目前我正在返回这样的随机行

SELECT id, title from ORDER BY RAND() LIMIT 1

我需要返回一个随机但唯一的行。因此,如果我第一次得到行 id = 15,下次我希望将第 15 行从结果池中取出,这样我就再也不会得到第 15 行了

我想我可以在技术上做这样的事情

SELECT id, title from where id <>15 ORDER BY RAND() LIMIT 1

但是这个语句很快就会变成这样的

SELECT id, title from where id <> 15 AND id <> 16 AND id <> 20 AND id <> 25 AND id <> 5 AND id <> 6 AND id <> 18 AND id <> 19 AND id <> 100 AND id <> 105 AND id <> 195 AND id <> 155 AND   ORDER BY RAND() LIMIT 1

这种增长有点问题,因为我需要通过将这些看到的 ID 传递到网页并再次返回到服务器来跟踪这些看到的 ID,或者可能必须为每个用户保留一个包含所有看到的 ID 的 session 。所有这些都是大量的额外工作,所以首先我想知道是否还有其他方法可以做到这一点。

还有另一种我不知道的方法可以做这种事情吗?

最佳答案

将字符串变量初始化为“0”,我们将该变量称为 Session.IDsSeen。

使您的查询如下所示:

where id not in (Session.IDsSeen)

每次运行查询时,将逗号和 ID 附加到 Session.IDsSeen。

请注意,此答案仅显示逻辑。您将需要对 Sessionl.IDsSeen 使用查询参数,但由于我不是 Java 程序员,所以我不知道执行此操作的 Java 方法。

关于java - 我需要了解如何从数据库中获取唯一的随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510344/

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