用条件更新不同的列?

时间:2012-02-19 04:36:32

标签: mysql

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

我想更新一个更新的查询:

UPDATE all GROUP_ID的{​​{1}}为7,并且 CID=9 //我想说的是,添加LENGTH月的DATE列是否小于今天的日期(NOW()),

if(DATE+LENGTH<TODAY)

使用YYYY-mm-dd格式

所以如果表是

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 

你能告诉我该查询的语法吗?

1 个答案:

答案 0 :(得分:2)

UPDATE TableX
SET cid = 9
  , valid = CASE WHEN `date` + INTERVAL length MONTH < CURDATE()
                 THEN 0
                 ELSE valid
            END
WHERE group_id = 7