Río*_*ire 6 mysql sql database
我希望将一个参数的结果存储SELECT到多个变量中.
我知道此查询的结果将始终6 ints从6个不同的行返回.
我尝试使用以下代码:
SELECT id INTO @photo1, @photo2, @photo3, @photo4, @photo5, @photo6
FROM album WHERE uploaded = @time AND scene_id = NEW.id;
Run Code Online (Sandbox Code Playgroud)
album是一张桌子.
uploaded是一个领域album.
scene_id是一个领域album.
id是PRIMARY_KEY的album.
我已经读过变量的数量必须等于字段的数量.在上述陈述中显然不是这种情况.
考虑到这一点,我将如何克服这个问题?
此代码正在MySQL触发器中使用.
编辑:根据请求的相关表模式:
person -- name of table
id | approved -- id is PK
album -- name of table
id | uploaded | scene_id -- id is PK
Run Code Online (Sandbox Code Playgroud)
触发器在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;
Run Code Online (Sandbox Code Playgroud)
有关完整的sql和测试用例,请参阅SqlFiddle.