如何复制一些列并同时更改一列?

时间:2017-08-04 06:34:09

标签: mysql

我想复制第三列和第四列,但更改第二列。我该怎么办?我想知道如何编写sql查询。谢谢。

例如:

表1:

1, 1, aaa, bbb

2, 1, ads, bff

3, 1, awq, bcc

我希望table1最终成为:

1, 1, aaa, bbb

2, 1, ads, bff

3, 1, awq, bcc

4, 2, aaa, bbb

5, 2, ads, bff

6, 2, awq, bcc

(第一列是id)

2 个答案:

答案 0 :(得分:0)

正如你的建议:

select (@cnt:=@cnt + 1) as RowNumber,a.c1,a.c2,a.c3 from
(select 1 as id, 1 as c1, 'aaa' as c2, 'bbb'as c3 union all
select 2, 1, 'ads', 'bff' union all 
select 3, 1, 'awq', 'bcc'

union all

select 1 as id, 1 as c1, 'aaa' as c2, 'bbb'as c3 union all
select 2, 1, 'ads', 'bff' union all 
select 3, 1, 'awq', 'bcc') as a

cross JOIN 

(select @cnt:=0) as tmp

结果:

1   1   aaa bbb
2   1   ads bff
3   1   awq bcc
4   1   aaa bbb
5   1   ads bff
6   1   awq bcc

答案 1 :(得分:0)

这应该有效:

1.
df['sum'][df['A'] == 2] = df['B'] + df['C']
df['sum'][df['A'] == 4] = df['B'] + df['D']
df['sum'][df['A'] == 8] = df['B'] + df['E']

2.
df.loc[df['A'] == 2, 'sum'] = df['B'] + df['C']
df.loc[df['A'] == 4, 'sum'] = df['B'] + df['D']
df.loc[df['A'] == 8, 'sum'] = df['B'] + df['E']