PHP MySQL:更新可复制条件的增量

PHP MySQL:更新可复制条件的增量,php,mysql,Php,Mysql,我有这样一句话: UPDATE `MyTable` SET point = point + 1 WHERE (mySubject = 'MATHEMATICS' AND myGrade = '100') OR (mySubject = 'PHYSICS' AND myGrade = '75') OR (mySubject = 'PHYSICS' AND myGrade = '75') 我希望表格更新为: MATHEMATICS | 100 | 1 PHYSIC

我有这样一句话:

UPDATE `MyTable` 
SET point = point + 1 
WHERE (mySubject = 'MATHEMATICS' AND myGrade = '100') OR 
      (mySubject = 'PHYSICS' AND myGrade = '75') OR 
      (mySubject = 'PHYSICS' AND myGrade = '75')
我希望表格更新为:

MATHEMATICS | 100 |  1
PHYSICS     | 75  |  2
而不是

PHYSICS     | 75  | 1
之所以存在重复的“物理”条件,是因为我从另一个函数中获得了这些信息。 我想知道,如果另一个函数通过物理2次,我是否可以将物理点增加2

有没有一种方法可以在一个连接中执行此操作,而不是调用更新3次:

UPDATE `MyTable` SET point = point + 1 WHERE mySubject = 'MATHEMATICS' AND myGrade = '100'
UPDATE `MyTable` SET point = point + 1 WHERE mySubject = 'PHYSICS' AND myGrade = '75'
UPDATE `MyTable` SET point = point + 1 WHERE mySubject = 'PHYSICS' AND myGrade = '75'

对表进行更新时,每行只进行一次。。 所以它不会生成2个物理更新

    UPDATE `MyTable` 
SET point = point + 1 
WHERE (mySubject = 'MATHEMATICS' AND myGrade = '100') OR 
      (mySubject = 'PHYSICS' AND myGrade = '75') OR 
      (mySubject = 'PHYSICS' AND myGrade = '75')
此查询表示的是SQL。。 为我更新MyTable中的所有行,其中(案例a)或(案例b)或(案例c)

SQL接受数学运算,在案例a中,它是OK并更新的。 然后需要物理处理,在案例b中,它们正常并更新,然后sql完成,因为表中并没有更多的行

你必须进行两次单独的更新才能完成你的工作

UPDATE `MyTable` SET point = point + 1 WHERE mySubject = 'MATHEMATICS';
UPDATE `MyTable` SET point = point + 2 WHERE mySubject = 'PHYSICS';
或者您可以使用CASE

UPDATE  `MyTable` SET point = 
        CASE
        WHEN mySubject = 'MATHEMATICS' THEN
                (point+1)
        WHEN mySubject = 'PHYSICS' THEN
                (point+2)
        END

你的问题在我看来并不清楚。虽然条件是重复的,但你的问题看起来很好。你确定你的表中既有“数学”又有“物理”吗?
(mySubject='PHYSICS'和myGrade='75')
是重复的,因为你正在使用一个函数生成查询(并且你想将点数增加2),对吗?为什么在查询中两次使用相同的条件,(mySubject='PHYSICS'和myGrade='75')或者(mySubject='PHYSICS'和myGrade='75')这3个更新在哪里?您好,谢谢您的澄清。我将在单独的sql查询中完成这3个更新:)