MYSQL Update具有不同值的单列

mad*_*hur 3 mysql sql sql-update

这个表" Trade"带有列" call",Call包含values(C,P)从CSV加载时我想更新来自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';
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*Woo 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')
Run Code Online (Sandbox Code Playgroud)


sas*_*llo 5

我看到的最短解决方案:

UPDATE Trade 
SET call = CONCAT(call,'E')
WHERE call IN ('C', 'P');
Run Code Online (Sandbox Code Playgroud)