php - CASE 中的多个 WHERE 条件

标签 php mysql

昨天,stackoverflow 的一名成员帮助我用另一个表中的案例更改了数据库中的表。但我还需要输入一个条件,不知道该放在哪里。我有这两张表:
联赛

uid  |  name  |  games  |  points  |
___________________________________
1    | Daniel |    0    |    0     |
2    | Mikkel |    0    |    0     |

kamp2:

uid  |  k1    |  k1r    |  k2   |  k2r   |  week  |
__________________________________________________
1    |  1     |  2-1    |  X    |  2-2   |  14    |
2    |  2     |  1-1    |  1    |  2-1   |  14    |

对于那些还没有得到它的人来说,这是一个投注游戏,用户对 2 场比赛(k1 和 k2)进行投注,并对两者的结果进行投注(k1r 和 k2r)。 假设第一场比赛是 2-1,我使用:

UPDATE liga l JOIN
       kamp2 k
       ON l.uid = k.uid
    SET point = (CASE WHEN k.k1 = '1' and k.k1r = '2-1' THEN point + 5
                      WHEN k.k1r = '2-1' AND k.k1 <> '1' THEN point + 3 
                      WHEN k.k1 = '1' AND k.k1r <> '2-1' THEN point + 1 
                      ELSE point
                 END)
    WHERE l.uid = k.uid ;

而且它工作得很好。 丹尼尔得到 5 分,米克尔得到 3 分。但现在我的问题来了。下周他们将发送另一个投注,周数为 15。所以我实际上只是想要它

UPDATE liga l JOIN
       kamp2 WHERE k.week = 15
       ......

但它不允许这样做。那我应该把条件放在哪里呢?

最佳答案

我不知道我是否理解你的问题,但你可以使用

l.uid = k.uid and k.week = 15

where(case1,case2)

最后一个方法是自己的mysql。

关于php - CASE 中的多个 WHERE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43246673/

相关文章:

php - undefined variable 和警告 session 无法发送 session 缓存限制器

java - 在 MySQL 的准备语句中发送 NULL 似乎不起作用

php - 使用 $_GET 获取搜索项,将数组转换为请求的列

mysql - 更新所有 NULL 字段 MySQL

php - 只有某些文本会插入数据库

php - 如果没有启用javascript,用户如何知道提交成功?

php - 在 Laravel 查询生成器中保留别名

PHP Mysql iis VPS - 从远程服务器连接

mysql - 将城市名称罗兹存储在 MySQL 表中

html - 获取div在数据库中的坐标