查询:
UPDATE nominees SET votes = ( SELECT votes
FROM nominees
WHERE ID =1 ) +1
Run Code Online (Sandbox Code Playgroud)
错误:
您无法在FROM中指定要更新的目标表'nominees'
根据错误,不确定那里有什么问题,这是我第一次尝试内联列,我想你可以调用它.所以我很明显做错了什么但不知道如何解决它.
Mar*_*ith 12
您的UPDATE查询缺少任何WHERE子句,因此即使MySQL允许它,然后效果是找到行add 1 的votes值,ID =1然后用结果更新表中的所有行.
我怀疑这不是理想的行为.要增加列值,您只需要执行此操作
UPDATE nominees
SET votes = votes +1
WHERE ID =1
Run Code Online (Sandbox Code Playgroud)
万一你确实需要其他行为,你需要做
UPDATE nominees
SET votes = (select votes + 1
FROM (SELECT votes
FROM nominees
WHERE ID = 1) T)
Run Code Online (Sandbox Code Playgroud)
这种包装到派生表中可以避免出现You can't specify target table 'nominees' for update in FROM错误.
| 归档时间: |
|
| 查看次数: |
14254 次 |
| 最近记录: |