繁体   English   中英

如何使用subselect更新MySQL表

[英]How do I update MySQL table, using subselect

我怎么能写查询,更新表videos ,并将字段name的值设置为average是max()的“某物”,或更新表,其中average按大小具有第二个值!

我认为查询必须看起来像这样!!!

UPDATE videos 
   SET name = 'something' 
 WHERE average IN (SELECT `average`
                     FROM `videos`
                 ORDER BY `average` DESC
                    LIMIT 1)

但这不起作用!!!

UPDATE videos 
   SET name = 'something' 
 WHERE videos.id IN (SELECT id
                     FROM `videos`
                 ORDER BY `average` DESC
                    LIMIT 1)

这里有两件事导致我的mysql(5.0.84)版本出现问题1.在子查询中使用不支持的限制2.在子查询中使用表进行更新(视频)

我想不出解决这些问题的好方法。 我建议将要更新的行的ID提取到代码中,然后在第二条语句中执行更新。 如果您使用纯SQL并手动执行此操作,则始终可以选择一个临时表,然后根据您在其中插入的ID进行更新。

暂无
暂无

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

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