3

有这个表“ Trade”,列“ call”,调用包含values(C,P)从 CSV 加载时我想从 java 程序更新贸易,这样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';

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

4

3 回答 3

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')
于 2013-04-12T06:42:07.463 回答
5

我看到的最短解决方案:

UPDATE Trade 
SET call = CONCAT(call,'E')
WHERE call IN ('C', 'P');
于 2013-04-12T06:43:03.577 回答
4

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

update Trade 
set call = CASE 
             WHEN callputtype='C' THEN 'CE' 
             WHEN callputtype='P' THEN 'PE' 
           END
where callputtype IN ('c', 'P');
于 2013-04-12T06:41:45.153 回答