Mysql 是否使用条件更新不同的列?

Mysql 是否使用条件更新不同的列?,mysql,Mysql,我有一个表tbl_a,主键为“ID”,列为“GROUP_ID”、“DATE”、“LENGTH”、“VALID”、“CID” 我想进行更新查询,该查询将更新为: 将7的所有组ID更新为CID=9,以及 if(日期+长度updatetablex 设置cid=9 ,valid=当'date`+间隔长度月

我有一个表tbl_a,主键为“ID”,列为“GROUP_ID”、“DATE”、“LENGTH”、“VALID”、“CID”

我想进行更新查询,该查询将更新为:

7
的所有组ID更新为
CID=9
,以及
if(日期+长度
updatetablex
设置cid=9
,valid=当'date`+间隔长度月
语句“将所有组ID 7更新为CID=9”不清楚。当条件
日期+长度
表示小时、分钟、天、年时,您需要更清楚地了解希望发生什么情况?\ypercube,是否表示“其他有效”也可以是其他1或其他什么?是的,当然可以是您想要的。我假设您不想在这种情况下更改列。
THEN
 SET VALID to be FALSE
for that row.
ID| GROUP_ID | DATE       | LENGTH| VALID| CID  
---------------------------------------------------
 1|     7    | 2011-12-01 |     1 |    1 |   2 
 2|     7    | 2012-01-01 |     1 |    1 |   7 
 3|     7    | 2012-02-01 |     1 |    1 |   2 
 4|     7    | 2012-03-01 |     2 |    1 |   3 
ID| GROUP_ID | DATE       | LENGTH| VALID| CID  
---------------------------------------------------
 1|     7    | 2011-12-01 |     1 |    0 |   9 // res:2012-12-01,update VALID
 2|     7    | 2012-01-01 |     1 |    0 |   9 // res:2012-02-01,update VALID
 3|     7    | 2012-02-01 |     1 |    1 |   9 // res:2012-03-01,no update for VALID
 4|     7    | 2012-03-01 |     2 |    1 |   9 // res:2012-05-01,no update for VALID
UPDATE TableX
SET cid = 9
  , valid = CASE WHEN `date` + INTERVAL length MONTH < CURDATE()
                 THEN 0
                 ELSE valid
            END
WHERE group_id = 7