gpt4 book ai didi

mySQL UPDATE value based on SELECT value of value +1 递增列值

转载 作者:可可西里 更新时间:2023-11-01 06:59:08 26 4
gpt4 key购买 nike

查询:

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 允许它,结果也是找到 votesID =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)

这种包装到派生表中的方法避免了您遇到的 You can't specify target table 'nominees' for update in FROM 错误。

关于mySQL UPDATE value based on SELECT value of value +1 递增列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7292720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com