sql >> データベース >  >> RDS >> Mysql

LIMITを使用してMYSQLからデータを選択する方法には、値を持つ1つの要素が含まれています。 1

    UNION ALLを使用する サブクエリは、期待する結果を得るのに役立ちます。

    次のクエリがあなたのケースに役立ちます:

    SELECT Answer FROM (
        SELECT * FROM (
            SELECT Answer, 1 AS ManualOrder FROM Answers WHERE Correct = 'true' AND QId = 1
            UNION ALL
            SELECT Answer, RAND() FROM Answers WHERE Correct != 'true' AND QId = 1 
        ) AS Q 
        ORDER BY ManualOrder DESC LIMIT 3
    ) W ORDER BY RAND()
    

    db<>fiddleのデモを見つけてください。

    私のデモでは、Answer 04 質問ID1の正解です 、結果セットで、Answer 04 常にランダムな順序で他の2つの回答と一緒に返されます。




    1. OracleのLobセグメント(SYS_LOB)を理解していますか?

    2. ARMベースのDebianデバイス用のOracleInstantClient

    3. ssisフラットファイルソースの不正な行をスキップする方法

    4. ONCONFLICTに一致する一意の制約または除外制約はありません