如何更改mysql中的查询,使其随机检索30行

如何更改mysql中的查询,使其随机检索30行,mysql,wordpress,customization,Mysql,Wordpress,Customization,我想在我的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

我想在我的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
我把它改成了这个,但还是不起作用。有人能帮我吗

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

将您的排序更改为以下内容:

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 by RAND() * 30
或者,如果您有一个整数id:

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 by RAND() * id

你是如何确定它“不起作用的?”我认为它应该起作用。顺序是一个保留字。根据错误消息,在订单别名周围使用反勾号。它不显示任何消息。它只检索30个固定问题,不是随机的!