Php 表中的重复条目
假设我有3个表,每个表的结构与此类似:Php 表中的重复条目,php,mysql,sql,Php,Mysql,Sql,假设我有3个表,每个表的结构与此类似: | id | customer_id | col1 | col2 | col3 | |----|-------------|------------|------------|-------------| | 1 | C100 | some value | some value | some values | | 2 | C101 | | |
| id | customer_id | col1 | col2 | col3 |
|----|-------------|------------|------------|-------------|
| 1 | C100 | some value | some value | some values |
| 2 | C101 | | | |
| 3 | C102 | | | |
现在我想用特定的客户id
复制它们的行
因此,在伪代码中,类似于:
DUPLICATE FROM tab1, tab2, tab3 WHERE customer_ID = C100 SET customer_ID = C987;
它将获取customer\u id
为C100
的3个表的值,并在每个表中创建另一个条目,但使用新的customer\u id
C987
这3个表如下所示:
| id | customer_id | col1 | col2 | col3 |
|----|-------------|------------|------------|-------------|
| 1 | C100 | some value | some value | some values |
| 2 | C101 | | | |
| 3 | C102 | | | |
| 4 | C987 | some value | some value | some value |
此外,表中的结构略有不同
id
是主键,customer\u id
是唯一的。也许您可以执行插入选择:
INSERT INTO tab1
SELECT id, 'C987', col1, col2, col3
FROM tab1
WHERE customer_id = 'C100';
您可以对tab2和tab3执行类似的查询。也许您可以执行插入选择:
INSERT INTO tab1
SELECT id, 'C987', col1, col2, col3
FROM tab1
WHERE customer_id = 'C100';
您可以对tab2和tab3执行类似的查询。那么您要替换行吗?您的示例中没有customer_id=123的行。表上是否有唯一的索引?你是说“三张桌子”还是“三排”?@dan08对不起,我的错。我更改了id。是的,id和客户id都是唯一的。有几个表,在我的示例中,我将其更改为3。是的,我是说三张桌子。每一行都有不同的结构。那么您要替换这一行吗?您的示例中没有customer_id=123的行。表上是否有唯一的索引?你是说“三张桌子”还是“三排”?@dan08对不起,我的错。我更改了id。是的,id和客户id都是唯一的。有几个表,在我的示例中,我将其更改为3。是的,我是说三张桌子。每一列都有不同的结构。是否可以不单独指定每一列?有几列,每列都有不同的结构。我想避免这种情况。@user1170330我想您不能,因为您需要显式值“C987”。@user1170330-不,您必须特别列出字段/列名。@cale\b谢谢!我认为还有一个问题,因为id是主键,插入重复的id将失败。但我在知道这是一个PK之前就已经写了这个答案:我认为要绕过
id
作为主键,您只需指定要插入和排除id的字段(如果是自动递增的话)是否可能,而不是单独指定每一列?有几列,每列都有不同的结构。我想避免这种情况。@user1170330我想您不能,因为您需要显式值“C987”。@user1170330-不,您必须特别列出字段/列名。@cale\b谢谢!我认为还有一个问题,因为id是主键,插入重复的id将失败。但我在知道这是一个PK之前就写了这个答案:我认为要绕过id
作为主键,只需指定要插入和排除id的字段(如果是自动递增的话)