繁体   English   中英

SELECT INTO多个@variables MySQL

[英]SELECT INTO multiple @variables MySQL

我希望将SELECT语句的结果存储到多个变量中。

我知道此查询的结果将始终从6个不同的行返回6 ints

我尝试使用以下代码:

SELECT id INTO @photo1, @photo2, @photo3, @photo4, @photo5, @photo6 
FROM album WHERE uploaded = @time AND scene_id = NEW.id;

album是一张桌子。 uploadedalbum一个字段。 scene_idalbum一个字段。 idalbumPRIMARY_KEY

我已经读过变量的数量必须等于字段的数量。 在上述陈述中显然不是这种情况。

考虑到这一点,我将如何克服这个问题?

此代码正在MySQL触发器中使用。

编辑:根据请求的相关表模式:

person   -- name of table   
id | approved -- id is PK

album   -- name of table
id | uploaded | scene_id  -- id is PK

approved从0更改为1时触发触发器

您可以使用同一个表加入,并确保每个联接都会提供一个新的ID,例如(对于两个ID,但您会明白这一点):

SELECT a1.id, a2.id INTO @photo1, @photo2
FROM album a1 
inner join album a2 on a2.scene=a1.scene and a2.upload=a1.upload and a2.id>a1.id 
WHERE a1.uploaded = @time AND a1.scene_id = NEW.id;

有关完整的sql和测试用例,请参阅SqlFiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM