【问题标题】:Combine INSERT and SELECT in one SQL query (Zapier)在一个 SQL 查询中结合 INSERT 和 SELECT (Zapier)
【发布时间】:2018-02-28 01:55:43
【问题描述】:

如果没有具有指定唯一键的条目或什么都不做,我正在制作 Zapier 任务以在 MySQL 中插入条目。

我需要尝试在某个表中插入新行,但是如果新条目的电子邮件已经是 INSERT 将默默地抛出警告(由于 IGNORE 关键字)。

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

但在这两种情况下,我的查询都没有返回任何内容,Zapier 以以下消息结束任务:

问题:有没有办法让一个复杂的 SQL 命令结合 INSERTSELECT 所以通过一个查询我将从数据库中得到一些结果集,而不是空对象或任何 INSERT回归?

P.S.这适用于 MySQL:

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

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

【问题讨论】:

    标签: mysql sql zapier


    【解决方案1】:

    这是一个老问题,但我今天也在努力解决同样的问题。在试图找到解决方案时,我遇到了这个问题,所以当我找到解决方案/解决方法时,我想我会做体面的事情并回帖......

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

    SELECT IFNULL( (SELECT employee_id FROM timesheets.employees WHERE employee_id = &lt;Step 6 | sheet_data_id&gt; LIMIT 1) ,0) AS result;

    基于所选答案here

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

    编辑 实际上,我不得不根据我与 Zapier here 的对话来修改这个答案。我保留了原始答案,但隐藏了它。该语法有效,但仅当查询是 SELECT 查询时,它不适用于 INSERTUPDATE 查询。有关详细信息,请参阅链接问题的 cmets 中的讨论。在这个阶段,基本上不可能通过 Zapier MySQL 自定义查询步骤进行插入或更新操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多