こんにちは、私はこのようなクエリを持っている: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()
は動作していないようだと私は論理的なエラーを見つけることができないようです。
EDIT:問題を解決しました。 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を()'ひどく非効率的である - あなたは、おそらくしようとすると、別の解決策を見つける必要があります。それにもかかわらず、 'ORDER BY RAND()'を ')'の外側に移動すると、それは機能しますか? – Swadq