Как изменить запрос в MySQL, чтобы он получал 30 строк случайным образом - PullRequest
0 голосов
/ 07 октября 2018

Я бы хотел изменить этот запрос в моем плагине WordPress, чтобы он получал 30 случайных строк из 100.

$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

1 Ответ

0 голосов
/ 07 октября 2018

Измените ваш вид на что-то вроде этого:

order by RAND() * 30

или если у вас есть целочисленный идентификатор:

order by RAND() * id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...