mysql中的insert ... on duplicate key update column=IF(条件,值1,值2 )

    mysql中的insert...on duplicate key update的用法注意点:

1.确定唯一性索引字段(如机构表中,机构编码是唯一的,不可重复的)

2.update 后面跟需要更新的字段(只要唯一性字段是重复了,则更新update后的字段值)

3.如果想增加限制条件(不能使用where,可以使用IF(columnB>0,1,columnA)

完整的SQL示例:

INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KEY UPDATE columnA=IF(columnB>0,1,columnA)

批量插入更新数据:

  1. insert into  
  2. ​   Shops(shopid, viewtotal)   
  3. values(1,123456),   
  4. (2, 234567),  
  5. (3, 345678)  
  6. on duplicate key update   
  7.   shopid = values(shopid),  
  8.   viewtotal = values(viewtotal)

insert into  tbl(uniqueColumn,columnA,columnB,columnC) values(uniqueColumn,columnA,columnB,columnC

on duplicate key update columnB = values(columnB),

columnA = IF(columnB>0,1,columnA)

唯一性字段:uniqueColumn

如果uniqueColumn重复则执行更新操作,否则新增。

假设重复执行更新操作,先将columnB更新为新值,然后根据if条件(columnB更新后的值)做判断更新columnA。

columnC字段不做更新操作,还是原先的值。



你可能感兴趣的:(mysql中的insert ... on duplicate key update column=IF(条件,值1,值2 ))