【问题标题】:MySQL random record with RAND() and clauses带有 RAND() 和子句的 MySQL 随机记录
【发布时间】:2015-04-29 17:15:24
【问题描述】:

我有一个数据库,我想从我的条目中随机抽取。我可以完美地做到这一点:

$query = "SELECT * FROM mytable ORDER BY RAND()

问题是数据库中包含了比赛中跳马的进入顺序,没有一个跳马可以连续跳。我有以下设置:

|jumper   | horse   | id| 

| Pedro   | gfs     | 1 | 

| Gustavo | psg     | 2 | 

| Breno   | sdwed   | 3 | 

| bruno   | sdsd    | 4 | 

| Carlos  | powkd   | 5 | 

| Andrea  | linda   | 6 |

| Gustavo | handara | 7 |

我必须防止跳投者古斯塔沃连续被拉到跳,因为他必须非常快速地换马。事实上,如果他被抽中,他只能在其他3名参赛者之后再次被抽中。希望有任何关于如何做到这一点的想法。

【问题讨论】:

  • SQL 不是一门美妙的编程语言;用 PHP 或您使用的任何语言对此进行编码会更容易。 SQL 与“集合”一起使用;你需要一个“迭代”的过程。

标签: php mysql random clause


【解决方案1】:

只需从后续查询中过滤掉最近的三个跳转:

SELECT * FROM mytable
WHERE id NOT IN (1,4,8) /* use recent id's here */
ORDER BY RAND()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多