2

結果テーブルを更新するためにSQLをフォローしています:

$mysqli->query("UPDATE results
                SET result_value = IF('$logo_value' - result_tries < 0 OR '$logo_value' - result_tries = 0, 1, '$logo_value' - result_tries)
                WHERE logo_id = '$logo_id'
                AND user_id = '$user_id'
                AND result_value = 0");

同じSQLコマンドで、result_valueに基づいて別のテーブルを更新することは可能ですか?

if result_value = 10
Update users SET user_hints = user_hints +1 WHERE user_id = '$user_id'

これを上記のSQL構文にどのように組み込むのですか?

私が考えることができる長い道のりは、この値を選択してphp変数に入れることです。そして、php変数値に基づいて別の更新を行うよりも...しかし、これは長くて退屈なようです

4

1 に答える 1

0

これはロングショットです(テストされていません)が、どうですか?

$mysqli->query("UPDATE results, users
                SET result_value = 
                        IF('$logo_value' - results.result_tries < 0 OR 
                           '$logo_value' - results.result_tries = 0, 
                            1, '$logo_value' - result_tries),
                    users.user_hints = 
                        IF(results.result_value >= 10, 
                           users.user_hints + 1, users.user_hints)
                WHERE results.logo_id = '$logo_id'
                AND results.user_id = '$user_id'
                AND results.user_id = users.user_id
                AND results.result_value = 0");

もちろん、両方のテーブルに同じ列名がいくつかある場合は、どちらのテーブルを指定する必要があります(results.user_id-または-などusers.user_id

于 2013-03-13T14:34:49.203 に答える