Mysql обновление данных - PullRequest
2 голосов
/ 17 мая 2011

ОБНОВЛЕНИЕ

+-----+------------------+-------------+
| 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 ]

1 голос
/ 17 мая 2011

Попробуйте это.

Добавьте новый столбец со следующим запросом SQL:

ALTER TABLE myTable ADD newColumn <datatype>

Где <datatype> может быть чем-то вроде int, text, longtext, varchar (50) -в зависимости от того, что вам нужно.

Затем обновите только этот столбец с помощью SQL-запросов, например:

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

или если вам нужно обновить определенную строку (выбранную, где идентификатор столбца равен 2):

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

Вот простой SQL-запрос для копирования данных из datenum в newColumn:

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.

0 голосов
/ 17 мая 2011

Вы можете просто изменить старую таблицу, добавив столбец. Если вы не можете этого сделать, просто используйте объединение двух таблиц, как это

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> 
0 голосов
/ 17 мая 2011
update mytable set newcol = 'yourvalhere' where somecol='somevalue';

Предложение Where является необязательным, если вы хотите добавить одно и то же значение ко всей таблице, игнорируйте его. Для получения дополнительной информации опубликуйте пример вашей схемы и того, что вы хотите, чтобы данные были.

Смотри также

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

...