如何使用subselect更新MySQL表

时间:2010-03-15 21:43:12

标签: mysql

如何编写查询,更新表videos,并将字段name的值设置为average为max()的'something',或者更新表,其中average的大小为第二个值!!!

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

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

但它不起作用!!!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

我想不出解决这些问题的好办法。我建议将你要更新的hte行的id拉出到你的代码中,然后在第二个语句中执行更新。如果您使用纯sql并手动执行此操作,那么您可以随时选择临时表,然后根据您在那里插入的ID进行更新。

相关问题