Tips buat atasin LIMIT di subquery
Bagi yang sering otak-atik MySQL dan bermain-main dengan subquery pasti pernah ketemu dengan pesan error ini dech.
This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery’
Tadi kebetulan ada temen saya yang tanya. Eh Gimana sih keluarin data 5 tertinggi dari 50 data yang gue random? Pertama gue jawab-in bahwa query nya seperti ini
SELECT * FROM a WHERE a_id IN ( SELECT a_id FROM a ORDER BY RAND() LIMIT 50 ) ORDER BY a_value DESC LIMIT 5
Terus gue bilang, bahwa “saat ini versi MySQL belom ada yang bisa begitu”. Terus setelah dia cari2, rupanya bisa diakal2in seperti ini :
SELECT * FROM ( SELECT * FROM a ORDER BY RAND() LIMIT 50 ) ORDER BY t_value DESC LIMIT 5
Semoga membantu.
Credits goes to @xtian