2

我只是想知道是否可以将数据从一个表列复制到同一数据库中的另一列?下面的代码不适用于我的 MySQL 版本,但它应该可以工作。

UPDATE `table1` SET `table1.column1` = 
(SELECT `table2.column2` FROM table2 WHERE `table1.city` = 'table2.city') 
WHERE `listing` ='5' 

你有什么想法吗?谢谢 !

伙计们,我认为使用 php 脚本可以解决这个问题,而这个问题的解决方案是制作一个简短的脚本,它可以用 while 循环完成所有这些:)

感谢大家加入这个讨论!


解决方案是在``它们之间的标记应该是列名,这很好用,享受!

4

4 回答 4

1

是的,您可以使用INSERT ... SELECT 语法,例如:

INSERT INTO database2.table1 (field1,field3,field9)
SELECT table2.field3,table2.field1,table2.field4
FROM table2;

检查Mysql

于 2013-04-01T11:55:04.100 回答
1

看起来您正在尝试执行更新,而不是插入。

UPDATE table1 AS t1 INNER JOIN table2 AS t2 ON t1.city=t2.city 
SET t1.column1 = t2.column2
WHERE t1.listing ='5'

如果您确实需要将数据从一个表复制到另一个表,则需要遵循以下语法:

INSERT INTO tablename (field1,field2,field3) (SELECT field1,field2,field3 FROM another_table);
于 2013-04-01T12:01:37.073 回答
0

尝试

INSERT INTO table2
   AS (SELECT *
FROM table1
WHERE table1.city = table2.city AND 
listing = 5);

按列尝试

INSERT INTO table2 (columnname1) values (SELECT columnname1 FROM table1 
WHERE table1.city = table2.city AND 
listing = 5);
于 2013-04-01T11:56:19.903 回答
0

尝试这个。

UPDATE table1, (
    SELECT table2.city, table2.column2 
    FROM table2  ) table2
SET table1.column1 = table2.column2
WHERE table1.city = table2.city
AND listing ='5' 
于 2013-04-01T12:04:11.520 回答