如果没有具有指定唯一键的条目或什么都不做,我正在制作 Zapier 任务以在 MySQL 中插入条目。
我需要尝试将新行插入到某个表中,但是如果新条目的电子邮件已经是 INSERT
将默默地抛出警告(由于 IGNORE
关键字)。
INSERT IGNORE users(email, hashed_password)
VALUES ('<email>`, '<some_hashed_password>')
但在这两种情况下,我的查询都没有返回任何内容,Zapier 以这条消息结束任务:
问题:有没有什么方法可以让一个复杂的 SQL 命令结合 INSERT
和 SELECT
这样我就可以通过一个查询从中得到一些结果集数据库,不是空对象或任何 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 中不起作用。
最佳答案
这是一个老问题,但我今天正在努力解决同样的问题。在试图找到解决方案时,我遇到了这个问题,所以当我找到解决方案/解决方法时,我认为我会做一些体面的事情并回发......
根据他们帖子中的红色“Bargle”错误,我相信 zmii 一定一直在尝试使用 MySQL 自定义搜索查询。 Zapier 必须有查询的输出,否则它会出错。我环顾四周并设计了我的自定义查询:
SELECT IFNULL( (SELECT employee_id FROM timesheets.employees WHERE employee_id = <Step 6 | sheet_data_id> LIMIT 1) ,0) AS result;
基于所选答案 here .
因此,如果找到员工 ID,我的查询将输出一个员工 ID,否则输出 0。然后,我插入了一个 Zapier PATHS 步骤,该步骤基于自定义查询的输出“结果”。如果结果大于 0,我更新现有记录。如果它是 0 那么我插入一条新记录。我怀疑我可以使用自定义查询代码来进行分支和更新/插入,但我还没有尝试过,因为我还有其他事情要先尝试。
编辑
实际上,我不得不根据与 Zapier 的对话修改此答案 here .我保留了原始答案但隐藏了它。语法有效,但仅当查询是 SELECT
时才有效。查询,它不适用于 INSERT
或 UPDATE
询问。有关详细信息,请参阅链接问题的评论中的讨论。本质上,在此阶段无法通过 Zapier MySQL 自定义查询步骤执行插入或更新操作。
关于mysql - 在一个 SQL 查询中组合 INSERT 和 SELECT (Zapier),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46297752/