2011-07-12 16 views
0

ユーザーテーブルから別のランダム値を使用して収益テーブルを更新するクエリを排除する問題があります。それが2番目のクエリで別のクエリのランダムな値を持つmysqlテーブルを更新しますか?

SELECT ID FROM users WHERE installid is NULL ORDER BY rand() 

を何も

$update = mysql_query("UPDATE earnings SET userid = (SELECT ID FROM users WHERE installid is NULL ORDER BY rand()) WHERE userid='0'"); 

しないクエリを実行するとき それは私にinstallidヌル

答えて

3

ランダムなユーザーIDを取得します、あなたはphpMyAdminをなどで、そのクエリを試したことがありますか?エラーが発生していますか?

あなたが試してみました:

SELECT ID FROM users WHERE installid is NULL ORDER BY rand() LIMIT 1 

をフルクエリになるように:

UPDATE earnings SET userid = (SELECT ID FROM users WHERE installid is NULL ORDER BY rand() LIMIT 1) WHERE userid='0' 

しかし、あなたが収益テーブル内の重複ユーザーIDの値を持つことになるかもしれないことに注意してください。

+0

私はphpMyAdminを使用して試していませんでしたが、あなたの解決策は魅力のように働いています – Marco

+0

@ Fouadはそれが動作するのを知っていて良かったです。 PHPは更新クエリ内にエラーを表示しないことに注意してください。 'mysql_query()'の呼び出しの後に 'die or mysql_error())'を追加するなど、クエリが失敗した場合は明示的に処理しました –

+0

このクエリを編集してWHERE userid =ユーザーテーブル? – Marco

関連する問題