你好,我有這樣的查詢:MySQL的RAND()LIMIT
SELECT otel_id
FROM YAZILIM_menu_icerik
WHERE YAZILIM_menu_icerik.menu_id = 39
AND otel_id IN (
SELECT otel_id
FROM YAZILIM_menu_icerik
WHERE menu_id =$id
ORDER BY RAND()
)
LIMIT 0,20
應該隨機顯示20家每次工作時間,但相反,我結束了每次都得到同樣的20家酒店。長話短說RAND()
似乎不工作,我似乎無法找到任何邏輯錯誤。
編輯:問題解決了。 MySQL不看內RAND(),所以這裏是正確的方式做到這一點:
SELECT otel_id
FROM YAZILIM_menu_icerik
WHERE YAZILIM_menu_icerik.menu_id = 39
AND otel_id IN (
SELECT otel_id
FROM YAZILIM_menu_icerik
WHERE menu_id =$id
)
ORDER BY RAND()
LIMIT 0,20
'ORDER BY RAND()'是非常低效的 - 你也許應該嘗試找到另一種解決方案。無論如何,如果你將'ORDER BY RAND()'移到''''外部,它是否工作? – Swadq