mysql - 这个触发器有什么问题?

标签 mysql ide triggers syntax-error heidisql

我将 MySql 与 HeidiSql 一起用作 IDE。我有以下触发器:

BEGIN
declare blobpassed blob(50);
declare gid integer(10);
select lt.groupid into gid, GROUP_CONCAT(passed) into blobpassed from latest_tests lt
    left join testcaseresults tcr on tcr.testcaseresultsid = lt.tcrid
    left join grouping g on g.groupid = lt.groupid

    where lt.tcrid = NEW.testcaseresultsid
group by lt.groupid;

if blobpassed REGEXP '[1,]+' THEN 
update grouping g
set g.haspassed = 1
where g.groupid = gid;
END;

但它一直说 GROUP_CONCAT(passed) into blobpassed from latest_tests lt 周围存在语法错误。通常,这些错误意味着在此之前出现了错误(因此,在这种情况下,使用 gid)。但我不明白我做错了什么。

有人能告诉我我做错了什么吗?谢谢。

最佳答案

SELECT ... INTO “into”部分只写一次,有一个变量列表,所以正确的查询是:

select lt.groupid, GROUP_CONCAT(passed) into gid, blobpassed from latest_tests lt
    left join testcaseresults tcr on tcr.testcaseresultsid = lt.tcrid
    left join grouping g on g.groupid = lt.groupid
    where lt.tcrid = NEW.testcaseresultsid

“into”部分也可以放在查询之后:

select lt.groupid, GROUP_CONCAT(passed) from latest_tests lt
    left join testcaseresults tcr on tcr.testcaseresultsid = lt.tcrid
    left join grouping g on g.groupid = lt.groupid
    where lt.tcrid = NEW.testcaseresultsid
    into gid, blobpassed

关于mysql - 这个触发器有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10147510/

相关文章:

php - 将 MySQL 查询转换为 Laravel 4.2 查询

c# - 如何配置 MYSQL ODBC 驱动程序以与 Visual Studio 2013 一起使用?

c# - SQL语法错误

c++ - 导出包含它们的模板时未创建源文件/头文件

Mysql触发器帮助-插入之前

mysql - 计算MySQL中日期之间的工作时间

c - 适用于 Mac 的 C IDE 好吗?

intellij-idea - Intellij Idea 无法启动 Windows 10

triggers - Salesforce Apex 触发器 "isAPI"上下文变量

c# - 从 Windows 登录屏幕 Hook 热键