Php 更新leftjoin集+/-问题
我想根据表中输入的一个数字进行加减 这是我的密码:Php 更新leftjoin集+/-问题,php,mysql,Php,Mysql,我想根据表中输入的一个数字进行加减 这是我的密码: $uratio = " UPDATE teams LEFT JOIN games g1 ON (teams.ID = g1.op1ID) SET ratio = ratio + IF(g1.op1gamescore = 1 , g1.op1score, g1.op1score) , ratio = ratio - IF(g1.op1gamescore = 0, g1.op1score, g1.op
$uratio = "
UPDATE teams
LEFT JOIN games g1 ON (teams.ID = g1.op1ID)
SET ratio = ratio
+ IF(g1.op1gamescore = 1 , g1.op1score, g1.op1score)
, ratio = ratio
- IF(g1.op1gamescore = 0, g1.op1score, g1.op1score)
WHERE g1.ID = '$_POST[id]' ;
";
mysql_query($uratio) or die (mysql_error());
$uratiob = "
UPDATE teams
LEFT JOIN games g2 ON (teams.ID = g2.op2ID)
SET ratio = ratio
+ IF(g2.op2gamescore = 1, g2.op2score, g2.op2score)
, ratio = ratio
- IF(g2.op2gamescore = 0, g2.op2score, g2.op2score)
WHERE g2.ID = '$_POST[id]' ;
";
mysql_query($uratiob) or die (mysql_error());
当op2gamescore=1时,它将op1与负号放在一起,而op2与负号放在一起,op2可以,但op1不能
当op1gamescore=1时,它也会这样做
当op1或op2=0时,它会纠正数学错误。但当它等于1时就不是了
它的数学正确,但op1总是以负号结尾,为什么?就像它执行-if和not+if。。。有什么想法吗 查询1:
UPDATE
teams
LEFT JOIN
games
ON
teams.ID = games.op1ID
SET
ratio = ratio + IF(games.op1gamescore = 1, games.op1score, -1 * games.op1score)
问题2:
UPDATE
teams
LEFT JOIN
games
ON
teams.ID = games.op2ID
SET
ratio = ratio + IF(games.op2gamescore = 1, games.op2score, -1 * games.op2score)
你不明白IF是怎么工作的。它有3个参数,第一个是条件,第二个是条件为真时返回的值,第三个是条件为假时返回的值。无论条件是真是假,你都会返回相同的值,所以你基本上只是在不考虑条件的情况下加上分数并减去分数。非常感谢。现在可以用了!我仍然使用相同的代码,但使用了-1*来更改假条件OK,但是没有必要在每个查询中设置两次比率。仔细考虑一下。