如何根据给定的百分比选择MySQL数据?

时间:2017-10-17 01:15:19

标签: php mysql laravel

我有以下查询在id中选择问题ID:

table_question

在我的数据库中,我得到了 133010的客观问题 15031个主观问题 。现在,我如何确保我的问题选择的比例

70%的目标问题和30%的问题是结构问题?

1 个答案:

答案 0 :(得分:2)

可能工作

试试用括号

usage of union

   (SELECT s.question_id
            FROM table_question s
            WHERE s.chapter_id = $chapter_id
            AND s.publish_status = ".PUBLISHED_ACTIVE." AND (
            s.format_type_id = ".QST_TYPE_OBJECTIVE." OR (s.format_type_id = ".QST_TYPE_SHORT_ANSWER." AND s.question_id < 200000 AND s.publish_status = ".PUBLISHED_ACTIVE."))
            ORDER BY RAND() LIMIT 3)
    UNION
    (SELECT s.question_id
            FROM table_question s
            WHERE s.chapter_id = $chapter_id
            AND s.publish_status = ".PUBLISHED_ACTIVE." AND (
            s.format_type_id = ".QST_TYPE_SUBJECTIVE." OR (s.format_type_id = ".QST_TYPE_SHORT_ANSWER." AND s.question_id < 200000 AND s.publish_status = ".PUBLISHED_ACTIVE."))
            ORDER BY RAND() LIMIT 2)