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-or- users.user_id

于 2013-03-13T14:34:49.203 回答