5

我在编写一个查询时遇到问题。例如,我有字段 id 和 name 的表,看起来像

ID | Name
---+------
1  | John 
2  | Ben
3  | Bob

第二个带有字段名称和某个字段的表。我需要使用第一个表中的数据填充此表,因此它看起来像

name | somefield
-----+-----------
John | blah=1
Ben  | blah=2
Bob  | blah=3

因此,名称的值是来自第一个表的名称,而某个字段的值是一些短语,例如来自第一个表的 blah=+id 值。这可能只用 mysql 吗?我尝试使用循环和 wp wpdb 类来做到这一点,但 wpdb 在每 30 行之后不断抛出一些 malloc(我认为)错误

4

3 回答 3

2
INSERT INTO table2 SELECT Name,CONCAT('blah=',ID) FROM table1;
于 2012-08-02T18:47:44.017 回答
1
insert into second_table select Name, concat('blah=', ID) from first_table;

警告:此操作将在操作期间锁定first_table。MySQL 需要这样做以保证复制期间的一致性。这对于一次性数据填充可能是可以接受的,但可能不建议在高流量生产系统上定期运行它。

于 2012-08-02T18:49:05.407 回答
1

这应该不会太难。您不需要循环,只需使用一条INSERT SELECT语句:

INSERT INTO table2(name, somefield)
SELECT name, CONCAT('blah=', id')
FROM table1
于 2012-08-02T18:51:49.447 回答