创建mysql条件插入?

创建mysql条件插入?,mysql,Mysql,如果列_a的值_a和列_b的值_b='x'已经存在于表_2的列_a中,我如何在表_1中进行检查?如果它不存在,插入它并为表2中缺少的值创建新行 更新:似乎有效的是: INSERT INTO products (key, category) SELECT key, category FROM accounts WHERE category = 'vegan' AND NOT EXISTS (SELECT * FROM products WHERE accou

如果列_a的值_a和列_b的值_b='x'已经存在于表_2的列_a中,我如何在表_1中进行检查?如果它不存在,插入它并为表2中缺少的值创建新行

更新:似乎有效的是:

INSERT INTO products
(key, category)
SELECT key, category
FROM accounts
WHERE category = 'vegan'
AND NOT EXISTS (SELECT *
          FROM products
          WHERE accounts.key = products.key);

为什么不将列转换为主键?您只需处理重复的输入错误代码

编辑:

由于degr,这里的解决方案是使用SELECT而不是WHERE

INSERT INTO tableA(`id`,`column1`)
SELECT 44,'Value of Column1' -- The values you want to insert
WHERE NOT EXISTS(SELECT * FROM table2 WHERE id=40) -- check that there is no matching with the request
AND 1=1 --additional conditions
AND NOT EXISTS(SELECT * FROM Table3 WHERE id=44);  --additional conditions

我不能用它作为主键。。。因为在500000条记录中,可能有使用相同唯一idOk的记录,因此,您可以插入到tableAyour、columns VALUESyour、values中,其中选择COUNT*,从table2中选择columnA=uniqueValue=0,这将统计表2中的发生次数,如果没有发生,则返回0。我正在努力。你能提供一个更精确的代码示例吗?实际上我还有另外一个条件。。。我只想做某些记录。请看上面。插入位置?谢谢阿德里安。我快到了。其他类别=‘素食主义者’;他还没开始工作。我在上面更新了。清理噪音并删除php标记,因为这是关于mysql的。