我需要更改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_ign
和user2_ign
更改 new_table 中的网址。有没有办法解决这个问题?
更新
我在 table1 url
或number-HasZNsh
中有这种alphabet-HasZNsh
。
我需要它们在 new_table
中变成这样number-HasZNsh
- > ign1-ign2-HasZNsh
alphabet-HasZNsh
- > ign1-ign2-HasZNsh
这是我需要特别做的事情。
答案 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`
有关上面使用的命令语法的更多信息: