【问题标题】:SQL random featureSQL 随机特征
【发布时间】:2020-04-29 17:07:02
【问题描述】:
String show = "SELECT * FROM car ORDER BY RANDOM() LIMIT 4";

您好,我正在使用 netbeans 创建这个测验软件。我决定使用 sqlite。因此,每当我单击开始按钮时,程序都会从​​数据库中随机获取一行问题并将其显示在文本区域中。问题是,有时它会重复相同的问题,因为它只是随机的。我希望我的问题是随机的,但每个问题都是独一无二的,而不是重复两次。我想要 5 个问题的限制,之后程序应该结束测验并显示一条消息。需要帮助,我是这方面的初学者。

【问题讨论】:

  • 简单的解决方案可能是跟踪 Java 中提出的问题,然后多次询问,直到有 5 个新问题
  • 欢迎来到 Stack Overflow!为了帮助其他有相同问题的用户找到答案,请选择更具体的标题。此外,请使用适当的大写字母并制作多个合理的段落,让可能有答案的人更容易阅读您的问题。

标签: java sql sqlite


【解决方案1】:

你可以这样使用:

....WHERE NOT (name = 'Paul' AND city = 'London')

【讨论】:

    【解决方案2】:

    也许您可以尝试添加另一列,其中包含 1-5 的数字或您想要多少个问题,然后您可以将您的问题添加到每个整数中。

    现在你要做的就是生成一个像这样的唯一编号 https://www.sqlservercentral.com/articles/finding-unique-non-repeating-random-numbers

    以及选择问题 where number = (生成的数字)。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      您可以使用DISTINCT 关键字来确保您的结果集中没有重复的结果。

      像这样。

      SELECT DISTINCT * FROM car ORDER BY RAND() LIMIT 4;
      

      【讨论】:

      • 重复结果不一样。整体重复,例如,当他们尝试再回答 5 个问题时,他们会得到与之前相同的问题
      • 问题不在于表中的重复行,而是多次运行查询时返回相同的行。
      • 是的,先生,我知道了,你能得到用户点击try again的运行时间吗?
      • 然后您可以使用WHERE NOT 子句并检查选择查询中较早的问题ID。
      • @JoakimDanielson,不是你。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2015-09-28
      • 2021-05-09
      • 1970-01-01
      • 2017-07-19
      • 2021-08-29
      • 1970-01-01
      相关资源
      最近更新 更多