mysql - datatasbe 查询中的批量更新

标签 mysql

我遇到一个问题,我正在尝试更新批量更新以替换另一列中的一列的值。

这是我从以下查询生成的数据

 ID     CodeID  credit   Image      creator   
47774   5635    none    5635.jpg    Freshy
47790   5643    none    5643.jpg    Fresh
47792   5643    none    5643AB.jpg  Fresh
47793   5643    none    5643FF.jpg  Fresh
47795   5643    none    56431.jpg   Fresh
47796   5643    none    56434B.jpg  Fresh

最后一列 {Creator} 来自以下联接:

我想在信用栏中填写相同的创建者值,该怎么做

select mp.id, codeid, credit, image, creator 
from mp inner join mm on mm.id = mp.codeid 
where credit = 'none' 

尝试了这样的更新

update mp SET credit = (select creator 
from mp inner join mm on mm.id = mp.modid 
where credit = 'none') 

最终出现错误:

[Err] 1093 - You can't specify target table 'mods_pics_copy' for update in FROM clause

可能有某种方法可以做到这一点

最佳答案

使用此语法

UPDATE mp
JOIN mm ON mm.id = mp.codeid AND credit = 'none'
SET mp.credit = mm.creator;

关于mysql - datatasbe 查询中的批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24332292/

相关文章:

php - 在函数的 Try Catch 部分之后,函数中的参数值变为空字符串

mysql - 当我必须连接一个表两次时,如何在 SQL 中正确使用内连接?

mysql - 连接 2 个具有不同行数的表

mysql - 时间累计和列格式不正确

python - MySQL 比较两个条目之间的相同字段 - 查询需要很长时间

mysql - ms Access MySQL文件ODBC连接ODBC--调用失败

mysql - 如何更改 MySQL 中列的数据类型?

mysql - 将列添加到现有的多列索引

mysql - 将三个 derby 数据库迁移到一个 MySQL 数据库

php - MySQL PDO 连接 php