【问题标题】:How to change a query in mysql so it retrieve 30 rows randomly如何更改mysql中的查询,使其随机检索30行
【发布时间】:2018-10-07 14:18:46
【问题描述】:

我想在我的 WordPress 插件中更改此查询,以便它检索 100 行中的 30 行。

$query = $wpdb->prepare("
    SELECT
        p.*, qq.quiz_id, qq.question_order AS order
    FROM
       {$wpdb->posts} p 
    INNER JOIN
       {$wpdb->prefix}learnpress_quiz_questions qq ON p.ID = qq.question_id
    WHERE
       qq.quiz_id IN (" . join( ',', $format ) . ")
    AND
       p.post_status = %s
", $args );

我已将其更改为此,但仍然无法正常工作。任何人都可以帮助我吗?

SELECT
    p.*, qq.quiz_id, qq.question_order AS order
FROM
    {$wpdb->posts} p 
INNER JOIN
    {$wpdb->prefix}learnpress_quiz_questions qq ON p.ID = qq.question_id
WHERE
    qq.quiz_id IN (" . join( ',', $format ) . ")
AND
    p.post_status = %s
ORDER BY
    RAND() LIMIT 30

【问题讨论】:

  • 您如何确定它“不起作用”?我认为它应该可以工作。
  • order 是保留字。根据错误消息
  • 在订单别名周围使用反引号..
  • 它没有显示任何消息。它只检索 30 个非随机的固定问题!

标签: mysql wordpress customization


【解决方案1】:

把你的排序改成这样:

order by RAND() * 30

或者如果你有一个整数 id:

order by RAND() * id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-23
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 2015-08-24
    相关资源
    最近更新 更多