Mysql - 基于另一个表插入条件 - ON DUPLICATE KEY UPDATE

时间:2011-04-17 00:58:34

标签: mysql insert duplicates

更新

我找到了答案并在下面提供

亲爱的,

我想插入表格 1)根据其他表的条件 2)并在第一个表上使用ON DUPLICATE KEY UPDATE。

我写的以下查询语法错误。你能帮我解决一下这个问题吗?

INSERT INTO my_all_count (type,code,count) values ( 0,1,1) 
ON DUPLICATE KEY UPDATE count = count + 1 
WHERE NOT EXISTS ( 
  select 1 from my_reg_count 
  where country_code=CurrCountry and type=0 and code=0);

这里 1)我想插入表my_all_count 2)类型,代码是一个关键,如果它存在增加县1 3)仅在my_reg_count

中不存在时插入

感谢您的帮助

此致

基兰

2 个答案:

答案 0 :(得分:2)

我找到了解决方案,这是答案

INSERT INTO my_all_count (type,code,count) 
    select 0,0,1 from dual WHERE NOT EXISTS ( 
         select * from my_reg_count where country_code=CurrCountry 
          and type=0 and code=0) ON DUPLICATE KEY UPDATE count = count + 1;

答案 1 :(得分:1)

不确定这会有效,但我确保ON DUPLICATE KEY子句应该在WHERE子句之后:

INSERT INTO my_all_count (type,code,count) values (0,1,1) 
WHERE NOT EXISTS ( 
  select 1 from my_reg_count 
  where country_code=CurrCountry and type=0 and code=0)
ON DUPLICATE KEY UPDATE count = count + 1;