こんにちは、次のようなクエリがあります。
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