我有这个Match
表:
| mid | Home | Away | dateUpdated | dateResultsEntered |
| 1 | 30 | 5 | 30/07/15 | 30/07/15 |
| 2 | 14 | 12 | 30/07/15 | 29/07/15 |
| 3 | 41 | 21 | 30/07/15 | 28/07/15 |
| 4 | 30 | 14 | 30/07/15 | 28/07/15 |
| 5 | NULL | NULL | 30/07/15 | NULL |
| 6 | NULL | NULL | 30/07/15 | NULL |
当用户在Web应用程序中提交结果表时,每行都会更新。但是,我正在尝试编写更新查询,以便Home
列具有值,请勿更改dateResultsEntered
列。一些用户提交的值将为NULL(即未输入)
这是使用mid
循环在PHP代码表中为每个foreach
重复的sql:
UPDATE `Match`
SET
Home = 20 ,
Away = 12 ,
dateUpdated = NOW() ,
dateResultsEntered = CASE WHEN Home IS NOT NULL
AND dateResultsEntered IS NULL
THEN NOW()
ELSE
NULL
END
WHERE mid = 5
在dateResultsEntered
中存在值的任何地方,似乎都会将所有值的NOW()
列更新为Home
。
我希望dateResultsEntered
列在Home
列从NULL
更改为整数时保存当前日期
有人可以帮我写这个查询吗?
答案 0 :(得分:1)
怎么样
UPDATE `Match`
SET
Home = 20 ,
Away = 12 ,
dateUpdated = NOW() ,
dateResultsEntered = NOW()
WHERE mid = 5 AND dateResultsEntered IS NULL AND Home IS NOT NULL