2011-10-17 16 views

答えて

3

同じクエリ内の同じテーブルに対して選択/更新ステートメントを使用することはできません。

5

あなたは自分の更新クエリ

EDITの目的を達成するために

ORDER BY RAND() LIMIT 5 

を追加することができます。

私が最初に質問の一部を逃しました。 ちょうどが5つのランダムな行を更新する必要がある場合、上記はうまくいくでしょう。しかし、テーブルから5つのランダムなIDを取得し、それらのIDで何らかのアクションを実行し、それらの行を更新する必要があるようです。残念ながら、UPDATEクエリはデータを変更でき、SELECTクエリはデータを取得できますが、どちらのクエリも両方を実行することはできません。あなたは、おそらく5つのランダムな行を選択/更新するストアドプロシージャのいくつかの並べ替えを作成することもできますが、それはあなたが現在

EDIT#2持っている2つのクエリよりも複雑になります:これをやりたいと思っためのあなたの理由場合

を同じクエリで並行性がある場合は、MySQLのLocking Read機能をチェックすることができます。

+0

それから他のランダムな行が更新されます! Pusそれはまだ2 querysです –

+0

申し訳ありませんが、あなたはクエリの出力としてIDをキャプチャする必要があることに気付かなかった。あなたの質問への答えは "いいえ、あなたはそれをすることはできません"です –

+0

しかし、quw – somewhatoff

関連する問題