插入相同的行但具有特定条件

时间:2017-11-07 18:59:09

标签: mysql sql database

首先,抱歉我的英语语法,而不是我的母语。

所以,我想将数据插入表中。但条件是在需要时只有一列应该是不同的。更清楚:

这是我的表af_descnom

cod   cdnom  coddesc  monto       stad  
------  ------  -------  --------  --------
246919  130394  D17      150.00           1
246920  130394  D1       30.00            1
246921  130394  D23      46.00            1
246922  130395  D17      150.00           1
246923  130395  D1       30.00            1
246924  130395  D23      135.00           1
246925  130395  D19      350.00           1
246926  130396  D17      150.00           1
246927  130396  D1       30.00            1
246928  130396  D23      135.00           1
246929  130397  D5       999.00           1
246930  130397  D1       30.00            1
246931  130397  D17      150.00           1
246932  130397  D23      40.00            1

您如何看待,有时列cdnom中的值是相同的。这是从我的其他表af_dnom保存主键的外键。 我想做的事? 插入所有相同的值,除了cod(是我的PK,有auto_increment)和cdnom。应该是这样的:

cod   cdnom  coddesc  monto       stad  
------  ------  -------  --------  --------
246934  130398  D17      150.00           1
246935  130398  D1       30.00            1
246936  130398  D23      46.00            1
246937  130399  D17      150.00           1
246938  130399  D1       30.00            1
246939  130399  D23      135.00           1
246940  130399  D19      350.00           1

我不知道这种事情是否可行,我已经尝试了一切。也许我应该输入所有?

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?

insert into af_descnom(cdnom, coddesc, monto, stad)
    select 130398, coddesc, monto, stad
    from af_descnom
    where cdnom = 130394;

insert into af_descnom(cdnom, coddesc, monto, stad)
    select 130399, coddesc, monto, stad
    from af_descnom
    where cdnom = 130395;