【问题标题】:Determine column value dynamically based on another table column in MySQL statementMySQL语句中根据另一个表列动态确定列值
【发布时间】:2013-11-03 14:11:08
【问题描述】:

有没有办法在 MySQL 中用伪代码执行这样的查询:

INSERT INTO table_a(a, b, c) SELECT table_b.a, table_b.b, IF (table_b.c <100) 500 else 1000 WHERE ...

我知道我可以将两个单独的查询作为一个事务进行,但我想知道是否有一种方法可以根据另一个表中的另一列为一列插入一个值,而无需遍历记录两次。

【问题讨论】:

    标签: java mysql sql sql-insert


    【解决方案1】:

    是的,有。 您可以使用CASE 构造:

    INSERT INTO table_a (a, b, c) 
    SELECT table_b.a, table_b.b, CASE WHEN table_b.c < 100 THEN 500 else 1000 END
    FROM   table_b
    WHERE  ...
    

    【讨论】:

      猜你喜欢
      • 2022-11-15
      • 2018-12-28
      • 2013-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2013-12-29
      • 1970-01-01
      相关资源
      最近更新 更多