加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MySql > 正文

mySQL UPDATE值基于值1的SELECT值递增列值

发布时间:2020-05-22 23:32:38 所属栏目:MySql 来源:互联网
导读:查询:UPDATE nominees SET votes = ( SELECT votes FROM nominees WHERE ID =1 ) +1 错误: You cant specify target table nominees for update in FROM 根据错误,不确定那里有什么问题,这是我第一次尝试内联列,我想你可以调用它

查询:

UPDATE nominees SET votes = ( SELECT votes
FROM nominees
WHERE ID =1 ) +1

错误:

You can’t specify target table ‘nominees’ for update in FROM

根据错误,不确定那里有什么问题,这是我第一次尝试内联列,我想你可以调用它.所以我很明显做错了什么但不知道如何解决它. 最佳答案 您的UPDATE查询缺少任何WHERE子句,因此即使MySQL允许它,效果也是找到ID = 1行的投票值为它添加1然后用结果更新表中的所有行.

我怀疑这不是理想的行为.要增加列值,您只需要执行此操作

UPDATE nominees 
SET votes = votes +1
WHERE ID =1 

万一你确实需要其他行为,你需要做

UPDATE nominees
SET    votes = (select votes + 1
                FROM   (SELECT votes
                        FROM   nominees
                        WHERE  ID = 1) T)  

这包装到派生表中避免了您无法在FROM错误中指定目标表’nominees’以进行更新.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读