使用从一个表复制数据并将其插入另一个表的INSERT INTO SELECT时,如何更改列的值?见例子(下图)
如果有人能帮助我解决这个问题 - 我真的很感激!我试图将数据从一个(主)表复制到另一个表但是更新第二个表上的值。我似乎无法想出这一个!谢谢!
代码:
$sql = " INSERT INTO table2 SELECT * FROM table1 WHERE volume = 'Story of a Girl';
答案 0 :(得分:3)
INSERT INTO table2 (username, volume, name, image, content, cssanimate)
SELECT 'tim', volume, name, image, content, cssanimate
FROM table1 where volume='Story of a Girl';
如果列出要插入的列,则可以使用自定义值替换列。
你也可以变得更复杂:
INSERT INTO table2 (username, volume, name, image, content, cssanimate)
SELECT
CASE
WHEN 'admin' THEN 'tim'
ELSE username
END CASE,
volume, name, image, content, cssanimate
FROM table1;
答案 1 :(得分:0)
插入不是正确的选项,您必须使用UPDATE选项。
尝试使用:
UPDATE table_2 SET table_2.username = table_1.username FROM table_1 AS table_1 INNER JOIN table_2 AS table_2 ON table_1.id = table_2.id WHERE table_1.volume = 'Story of a Girl';
如果这有助于你不要忘记投票!如果它没有投票选择。
答案 2 :(得分:0)
您还可以通过使用
在插入时修改列INSERT INTO ...() SELECT ...REPLACE(fieldname, 'somestring','anotherstring') ...
甚至使用子查询
INSERT INTO ...() SELECT ...(SELECT id FROM tableName WHERE somefield = 'asd')...