0

有没有一种方法可以在 MySQL 中像这样在伪代码中执行查询:

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

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

4

1 回答 1

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  ...
于 2013-11-03T14:15:51.043 回答