Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySQL基于value+1递增列值的SELECT值更新值_Mysql - Fatal编程技术网

mySQL基于value+1递增列值的SELECT值更新值

mySQL基于value+1递增列值的SELECT值更新值,mysql,Mysql,查询: UPDATE nominees SET votes = ( SELECT votes FROM nominees WHERE ID =1 ) +1 错误: 无法在中为更新指定目标表“提名人” 不确定有什么错,基于这个错误,这是我第一次尝试内联列入罪,我想你可以称之为内联列。因此,我显然做了一些错误的事情,但不知道如何修复它。您的更新查询缺少任何WHERE子句,因此即使MySQL允许这样做,其效果将是找到ID=1行的票数值,向其中添加1,然后用结果更新表中的所有行 我怀疑那不是我想要的行

查询:

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

无法在中为更新指定目标表“提名人”

不确定有什么错,基于这个错误,这是我第一次尝试内联列入罪,我想你可以称之为内联列。因此,我显然做了一些错误的事情,但不知道如何修复它。

您的更新查询缺少任何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)  

将其包装到派生表中可以避免由于错误而无法指定更新的目标表“代名人”。

这就是问题所在!。。也许我对今晚的比赛感到厌倦了。。到处犯简单的错误。T是干什么的?在编辑结束时?@chris-它只是子查询/派生表的任意表别名。或者它可以说为T。更多关于这些的信息,请参阅。也许你可以帮我再问一个问题。。我以为我已经找到了答案,但我错了。问题是: