如何更改mysql中列的数据?

时间:2017-01-02 04:10:41

标签: mysql phpmyadmin

我需要更改table1中一列的某些数据,然后,我会将部分table1数据复制到new_table,这是我的示例表。

表1

id | url | user1_ign | user2_ign | message | fields that are not needed anymore

NEW_TABLE

id | url | user1_ign | user2_ign | message

基本上,table1的字段不在new_table中。我的问题是我不知道如何更改字段中的数据,同时将其复制到新表(已在此处搜索过)。

我需要更改url的数据。这是布局。

表1

id | url        | user1_ign | user2_ign | message     | some field

1  | jj-HasZNsh | jj        | gg        | hello dude! | ...

NEW_TABLE

id | url           | user1_ign | user2_ign | message

1  | jj-gg-HasZNsh | jj        | gg        | hello dude!

这就是我需要做的,正如您所看到的,我需要根据user1_ignuser2_ign更改 new_table 中的网址。有没有办法解决这个问题?

更新

我在 table1 urlnumber-HasZNsh中有这种alphabet-HasZNsh

我需要它们在 new_table

中变成这样
  • number-HasZNsh - > ign1-ign2-HasZNsh
  • alphabet-HasZNsh - > ign1-ign2-HasZNsh

这是我需要特别做的事情。

1 个答案:

答案 0 :(得分:3)

您可以合并目标表的INSERT语句,然后SELECT设置要插入的值。对于上面指定的url字段,您可以使用REPLACE替换字符串中的字符串。

INSERT INTO 
   `new_table` (id, url, user1_ign, user2_ign, message)
SELECT
   id, 
   REPLACE(url, '-', '-gg-') `url`,
   user1_ign,
   message
FROM 
   `table1`

如果您希望从gg行的REPLACE部分的其他字段中获取数据,则可以使用:

INSERT INTO 
   `new_table` (id, url, user1_ign, user2_ign, message)
SELECT
   id, 
   REPLACE(url, '-', CONCAT('-', user2_ign, '-') `url`,
   user1_ign,
   message
FROM 
   `table1`

有关上面使用的命令语法的更多信息: