在一个SQL查询(Zapier)中合并INSERT和SELECT

问题描述 投票:2回答:1

我正在设计Zapier任务以在MySQL中插入条目,如果没有带有指定唯一键的条目或什么也不做。

我需要尝试在某个表中插入新行,但是如果新条目的电子邮件已经存在INSERT,则会无提示地发出警告(由于[C​​0]关键字)。

IGNORE

但是在两种情况下,我的查询均未返回任何内容,并且Zapier用此消息结束了任务:

INSERT IGNORE users(email, hashed_password) VALUES ('<email>`, '<some_hashed_password>')

问题:是否有某种方法可以使一个复杂的SQL命令将enter image description hereINSERT组合在一起,所以通过一个查询,我将从DB中获得一些结果集,而不是空对象或任何SELECT返回的结果?

P.S。在MySQL中有效:

INSERT

但是它由两个查询组成,这在Zapier中不起作用。

mysql sql zapier
1个回答
1
投票

这是一个古老的问题,但今天我正努力解决同一问题。在尝试找到解决方案时,我遇到了这个qn,所以当我找到解决方案/解决方法时,我以为我会做一件体面的事然后回发...

基于他们帖子中的红色“ Bargle”错误,我相信zmii一定一直在尝试使用MySQL自定义搜索查询。 Zapier必须具有查询的输出,否则将出错。我环顾四周,然后制作了自定义查询:

INSERT IGNORE reporting.users(`email`, `password`) VALUES ("[email protected]", "test"); SELECT * FROM reporting.users as u WHERE u.email = "[email protected]";

基于所选答案SELECT IFNULL( (SELECT employee_id FROM timesheets.employees WHERE employee_id = <Step 6 | sheet_data_id> LIMIT 1) ,0) AS result;

因此,我的查询将输出一个雇员ID(如果找到),否则输出0。然后,我基于自定义查询的输出“结果”插入了一个Zapier PATHS步骤。如果结果大于0,则更新现有记录。如果它是0,那么我插入一条新记录。我怀疑我可以使用自定义查询代码来进行分支和更新/插入,但是我还没有尝试过,因为我还有其他事情要先尝试。

[Edit实际上,我不得不根据与Zapier here的对话来修改此答案。我保留了原始答案,但隐藏了它。该语法有效,但仅当查询为here查询时,才对SELECTINSERT查询无效。有关详细信息,请参见链接问题的注释中的讨论。从本质上讲,目前无法通过Zapier MySQL自定义查询步骤执行插入或更新操作。

© www.soinside.com 2019 - 2024. All rights reserved.