私はその中の構造とデータが以下のようなテーブルを持っています:
テーブルには、 'id'という名前の自動増分フィールドがあります。 idを格納する 'q_r_id'という名前の別のフィールドがありますが、ここではidを繰り返すことができます(例えば、id-12は1行以上最大5行で繰り返すことができます)。
私はレコードの固定数を選択したいこのテーブルはランダムであるが、例えばid-12が選択された場合には「q_r_id」フィールドからすべての行(すなわち、id-12の5つの行すべてがランダム結果に含まれるべきであることを保証する。
私は次のクエリを使用していますが、望みの結果が得られません:
SELECT * FROM tblreasoningip_r WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
group BY q_r_id LIMIT 0,30
どんな助けも高く評価されます。
回答:
回答№1は1組合を試して、
SELECT * FROM
(
SELECT * FROM tblreasoningip_r
WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
UNION
SELECT * FROM tblreasoningip_r WHERE q_r_id = 12
)
GROUP BY id