我正在使用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)。但我不明白我做错了什么。
有人能告诉我我做错了什么吗?谢谢。
答案 0 :(得分:0)
在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