你好,我有这样的查询: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