当前位置: 首页 > 知识库问答 >
问题:

MYSQL使用不同的值更新单个列[重复]

暴辰龙
2023-03-14

有一个表“Trade”和列“call”,call包含值(C,P)当从CSV加载时,我想从java程序更新Trade,以便如果call='C',那么call='CE'

如果call='P',则call='PE'

我发现这可以通过两个查询来完成。这样地

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

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

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


共有3个答案

解修然
2023-03-14

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

update Trade 
set call = CASE 
             WHEN callputtype='C' THEN 'CE' 
             WHEN callputtype='P' THEN 'PE' 
           END
where callputtype IN ('c', 'P');
司寇山
2023-03-14

我看到的最短解决方案是:

UPDATE Trade 
SET call = CONCAT(call,'E')
WHERE call IN ('C', 'P');
狄飞鹏
2023-03-14

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

UPDATE  Trade
SET     `CALL` = CASE   WHEN `Call` = 'C' THEN 'CE'
                        WHEN `Call` = 'P' THEN 'PE'
                    ELSE `CALL` END
WHERE   `CALL` IN ('C','P')
 类似资料:
  • 当更新旧日期到新日期时,我得到 SQL错误:ORA-00932:不一致的数据类型:预期日期获取字符00932。00000-“不一致的数据类型:预期%s得到%s”

  • 问题内容: 我有表SQLite数据库和列,,。行数不断变化(可能增加或减少)。如果我知道每一行的值和行数,是否可以执行一次SQL查询以根据ID更新所有具有不同值的和字段? 例如: SQL查询伪代码: 和是存储和字段的新值的数组。 如果,例如,和包含以下值: …然后查询后的数据库应如下所示: 这可能吗?我现在正在为每个查询更新一行,但是随着行数的增加,它将需要数百个查询。顺便说一下,我正在AIR中做

  • 我有两个表格:,带有数量和单价(id | name | order | id | qt | unit | price)和表格。 我想表格并放入,以获得订单的总价。 items表上的查询非常简单,可以很好地为同一订单id内的所有项目求和: 但是我不能在我的表中插入这个值。我不能让这个工作: 它返回 我在这里发现了一个非常类似的问题,但答案对我来说并不适用:

  • 我最近开始用JavaFX(jdk 1.8.0_66)编程一个应用程序。我有几个表(视图),其中之一应该是关于所有'订阅'对象的概述。因此,我创建了表视图,并用一个可观察的列表填充它: 例如,我的桌子有点像这样: 现在,每当我向列表中添加参与者时,相应单元格中的数字应该增加一个,但不会增加——除非我重新启动应用程序。希望你们中有人能帮助我/解释我有什么问题。

  • 我有一张像下面这样的桌子, ID姓名电子邮件性别 这个表中已经有了一些值。 现在,我用下面的查询来添加年龄。 alter table tblPerson add Age int 现在,我的行结构看起来像 ID姓名电子邮件性别年龄 现在,我有了年龄表。有任何查询可以将这些年龄添加到新创建的列中吗? 所有年龄都是根据ID排序的。因此,如果需要逻辑,则不需要。我只需要添加列数据。 谢谢

  • 问题内容: 我有两个桌子,看起来都像 我需要根据每个表中的检查名称复制from 到的值。 此声明有任何提示吗? 问题答案: 除了此答案外,如果您需要根据tableA.value动态更改tableB.value,则可以执行以下操作: