有没有办法在MySQL中执行像伪代码中的查询:
INSERT INTO table_a(a, b, c) SELECT table_b.a, table_b.b, IF (table_b.c <100) 500 else 1000 WHERE ...
我知道我可以将两个单独的查询作为一个事务但我想知道是否有一种方法可以根据另一个表中的另一列插入一个列的值,而不会超过记录两次。
答案 0 :(得分: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 ...