Php 如果另一个表中的值相等,则更新一个表
这一次我可能试图达到过高的水平,但我希望这能实现。我有一张名为liga的桌子,如下所示:Php 如果另一个表中的值相等,则更新一个表,php,mysql,Php,Mysql,这一次我可能试图达到过高的水平,但我希望这能实现。我有一张名为liga的桌子,如下所示: uid | name | games | points | ___________________________________ 1 | Daniel | 0 | 0 | 2 | Mikkel | 0 | 0 | uid | k1 | k1r | k2 | k2r | week | _____
uid | name | games | points |
___________________________________
1 | Daniel | 0 | 0 |
2 | Mikkel | 0 | 0 |
uid | k1 | k1r | k2 | k2r | week |
__________________________________________________
1 | 1 | 2-1 | X | 2-2 | 14 |
2 | 2 | 1-1 | 1 | 2-1 | 14 |
其中uid是用户id的缩写。
然后我有一个名为kamp2的表,如下所示:
uid | name | games | points |
___________________________________
1 | Daniel | 0 | 0 |
2 | Mikkel | 0 | 0 |
uid | k1 | k1r | k2 | k2r | week |
__________________________________________________
1 | 1 | 2-1 | X | 2-2 | 14 |
2 | 2 | 1-1 | 1 | 2-1 | 14 |
这些数据由附加到uid的用户提交。
现在,我想要的是一个表格,在这里我写下足球比赛的结果,比如:
<input type="text" name="k1">... and so on...
If (k1 == 1 AND k1r == 2-1) UPDATE liga SET point = point + 5 WHERE uid = $uid;
else if
(k1r == 2-1 AND k1 != 1) UPDATE liga SET point = point + 3 WHERE uid = $uid ;
else if
(k1 == 1 AND k1r != 2-1) UPDATE liga SET point = point + 1 WHERE uid = $uid ;
但这怎么可能呢?我应该先选择kamp2表,然后使用它,或者连接两个表,或者如何连接?
如果这个问题太大而无法回答,请告诉我:我不想让你给我确切的代码,只是为了指导我:
希望没事 您也不能在相同的条件下更新相同的记录 您需要使用子查询来更新它 更新数据表t,选择不同的ID、名称、值 从数据表 其中VALUE不为NULL,VALUE!=t1设置t.VALUE=t1.VALUE,其中t.ID=t1.ID,t.NAME=t1.NAME
您也不能使用该条件更新同一记录 您需要使用子查询来更新它 更新数据表t,选择不同的ID、名称、值 从数据表 其中VALUE不为NULL,VALUE!=t1设置t.VALUE=t1.VALUE,其中t.ID=t1.ID,t.NAME=t1.NAME
您可以使用触发器的概念来完成此任务: 您必须在kamp2表上创建更新/插入后触发器,并在该触发器中更新liga表
或者通过后端php脚本处理此问题。您可以使用触发器的概念来完成此任务: 您必须在kamp2表上创建更新/插入后触发器,并在该触发器中更新liga表
或者通过后端php脚本处理此问题。您可以将表连接在一起,然后使用CASE逻辑进行更新:
您可以将这些表连接在一起,然后使用案例逻辑进行更新:
为什么我们不能在更新查询中使用联接?我们可以用连接和case语句解决这个问题是的,@Gordon Linoff使用连接和case给出了很好的解决方案,,,对不起,我的错误编辑了答案以避免任何错误信息。为什么我们不能在更新查询中使用连接?我们可以用join和case statement解决这个问题是的,@Gordon Linoff使用join和case给出了一个很好的解决方案,,,对不起,我的错误编辑了答案以避免任何错误信息。我一回到家就会尝试:如何确保它选择本周的kamp2表?下周“周”列将为15,因此我必须确保,它在案例中使用了“周”行?@DanielJensen。如果您还有其他问题,请将其作为新问题而不是在评论中提出。明白了!:非常感谢。我一回到家就会试试这个:我如何确保它选择本周在kamp2表中?下周“周”列将为15,因此我必须确保,它在案例中使用了“周”行?@DanielJensen。如果您还有其他问题,请将其作为新问题而不是在评论中提出。明白了!:非常感谢。