【问题标题】:MYSQL Update Single column with different values [duplicate]MYSQL更新具有不同值的单列[重复]
【发布时间】:2013-04-04 14:08:30
【问题描述】:

有这个表“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';

这是否可以在单个查询中完成?

【问题讨论】:

    标签: mysql sql sql-update


    【解决方案1】:

    我看到的最短解决方案:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 感谢为我工作 :)
      • 您需要转义CALL,因为它是保留关键字。 :D
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-02
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        • 2015-03-22
        • 1970-01-01
        • 2018-11-01
        相关资源
        最近更新 更多