Mysql更新数据

时间:2011-05-17 09:48:41

标签: mysql insert replace

更新

+-----+------------------+-------------+
| id  | datenum          | F1_baro_20_ |
+-----+------------------+-------------+
|   1 | 734152.000000000 |     1005.21 |
|   2 | 734152.006944445 |     1005.26 |
+-----+------------------+-------------+

这是我的表

这是我的新表

+-----+------------------+-------------+------------+
| id  | datenum          | F1_baro_20_ |new column  |
+-----+------------------+-------------+------------+
|   1 | 734152.000000000 |     1005.21 |            |
|   2 | 734152.006944445 |     1005.26 |            |
+-----+------------------+-------------+------------+

我想将数据插入'new_colum',其中old_datenum = new_datenum但我不想修改现有数据!

3 个答案:

答案 0 :(得分:1)

试试这个。

使用以下SQL查询添加新列:

ALTER TABLE myTable ADD newColumn <datatype>

<datatype>可以是int,text,longtext,varchar(50),具体取决于你需要的东西。

然后仅使用以下SQL查询更新此列:

UPDATE TABLE myTable SET newColumn = 'Hello this is my data'

或者如果您需要更新特定行(在列ID为2的情况下选择):

UPDATE TABLE myTable SET newColumn = 'Hello this is my data' WHERE id = '2'

以下是将数据从datenum复制到newColumn的简单SQL查询:

UPDATE myTable SET newColumn = datenum

运行该代码一次(但当然使用您的表名和列名),您将看到数据被复制。


或者如果您想使用,例如,PHP:

$rs = mysql_query('SELECT * FROM myTable ORDER BY id ASC');
while ($row = mysql_fetch_array($rs)) {
  $id = $row['id'];
  $new_datenum = $row['datenum'];
  $q = mysql_query('UPDATE myTable SET newColumn = $new_datenum WHERE id = $id');
}

这也会将所有数据从datenum复制到newColumn。

答案 1 :(得分:0)

update mytable set newcol = 'yourvalhere' where somecol='somevalue';

Where子句是可选的,如果要向整个表添加相同的值,请忽略它。有关更多信息,请发布您的架构示例以及您希望数据的内容。

另见

http://dev.mysql.com/doc/refman/5.0/en/update.html

答案 2 :(得分:0)

您可以简单地修改旧表以添加列。如果您不能这样做,那么只需在这两个表上使用连接

UPDATE newTable N INNER JOIN
oldTable O 
ON N.datenum = O.datenum
SET N.newcolumn = <whatever you want to set>
WHERE <any conditions on either tables>