MYSQL Update具有不同值的单列

时间:2013-04-12 06:39:36

标签: mysql sql sql-update

此表格为“Trade”,其中包含“call”列,从CSV加载时,调用包含values(C,P) 我想从java程序更新Trade,if call='C' then call='CE'

if call='P' then call='PE'

我发现这可以使用2个查询来完成。像这样

update Trade set call='CE' where call='C';

update Trade set call='PE' where call='P';

无论如何这可以在单个查询中完成吗?

3 个答案:

答案 0 :(得分:7)

CALL是保留的关键字,需要转义。

UPDATE  Trade
SET     `CALL` = CASE   WHEN `Call` = 'C' THEN 'CE'
                        WHEN `Call` = 'P' THEN 'PE'
                    ELSE `CALL` END
WHERE   `CALL` IN ('C','P')

答案 1 :(得分:5)

我看到的最短解决方案:

UPDATE Trade 
SET call = CONCAT(call,'E')
WHERE call IN ('C', 'P');

答案 2 :(得分:4)

是的,您可以使用CASE表达式在一个查询中执行此操作。像这样:

update Trade 
set call = CASE 
             WHEN callputtype='C' THEN 'CE' 
             WHEN callputtype='P' THEN 'PE' 
           END
where callputtype IN ('c', 'P');