Mysql 选择多个@variables

Mysql 选择多个@variables,mysql,sql,database,Mysql,Sql,Database,我希望将SELECT语句的结果存储到多个变量中 我知道这个查询的结果总是从6个不同的行返回6个整数 我已尝试使用以下代码: SELECT id INTO @photo1, @photo2, @photo3, @photo4, @photo5, @photo6 FROM album WHERE uploaded = @time AND scene_id = NEW.id; 相册是一张桌子。 上传是相册中的一个字段。 场景id是相册中的一个字段。 id是相册的主键 我读到变量的数量必须等于字段的

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

我知道这个查询的结果总是从6个不同的行返回6个整数

我已尝试使用以下代码:

SELECT id INTO @photo1, @photo2, @photo3, @photo4, @photo5, @photo6 
FROM album WHERE uploaded = @time AND scene_id = NEW.id;
相册是一张桌子。 上传是相册中的一个字段。 场景id是相册中的一个字段。 id是相册的主键

我读到变量的数量必须等于字段的数量。这显然不是上述声明中的情况

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

此代码正在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和测试用例,请参阅。

您必须发布用于驱动此数据库的语言。如果我清楚你想要什么,你不能在一次选择中完成。我正在将其构建到MySQL触发器中。谢谢我问你为什么要变量中的数据?如果您需要对以后插入/删除的数据执行任何操作,为什么不直接从旧/新表中选择?触发器将在另一个表上触发。但是-您可以将触发器放在一个表上,然后从中插入另一个表,从旧表和新表中进行选择。请您更清楚地说明要将哪些数据放在何处,并提供表的模式,好吗?谢谢。但是我得到了错误1415-不允许从触发器返回结果集选择@photo1、@photo2、@photo3、@photo4、@photo5、@photo6;`正在导致错误。有什么想法吗?@Ríomhaire这是另外一回事,你需要提供你的触发代码体。我也收到了这个错误;1235-此版本的MySQL尚不支持“一个表中具有相同操作时间和事件的多个触发器”。@Ríomhaire这可能是因为您已经为该操作注册了不同的触发器。感谢它能够工作,因为我没有使用SELECT。我将变量设置为@ann_photo1=@photo1;。然后用@ann_photo1。再次感谢。