Saya mencari tetapi tidak menemui penyelesaian yang berkesan. Perlukan sedikit bantuan di sini.
Andaikan saya mempunyai jadual dengan lebih daripada 100 rekod, pertama, saya perlu mencari 20 rekod pertama dalam susunan tertentu, dan kemudian saya perlu memilih 5 rekod secara rawak daripada 20 rekod ini. Ini adalah pertanyaan saya,
SELECT a
FROM tableA
WHERE b IN (
SELECT b
FROM tableA
WHERE c="x"
ORDER BY d DESC
LIMIT 20
)
ORDER BY RAND()
LIMIT 5;
Beritahu saya cara membetulkannya. terima kasih.
Pertanyaan dalaman memilih 20 pengguna yang diisih mengikut ID, pertanyaan luar menggunakan fungsi RAND() untuk memesan secara rawak, dengan had 5 :)
SELECT * FROM ( SELECT * FROM A ORDER BY id desc LIMIT 20 ) T1 ORDER BY rand() limit 5