我将 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/