mysql - 更新字段设置为同一字段中行的值

标签 mysql sql

我正在尝试更新特定字段并将其设置为等于同一字段中一行的值。

到目前为止我尝试过的是:

enter image description here

mysql> UPDATE tblitem SET imagefilename = (SELECT imagefilename from tblitem where itemid=2) where itemid=1'
1093 - You can't specify target table 'tblitem' for update in from clause

我在这里要做的是将 itemid 1 的值更新为 itemid 2 的值。

这可能吗?提前谢谢你。

最佳答案

在 MySQL 中,如果你在表上执行 UPDATE/INSERT/DELETE 查询,你不能引用上述内部查询中的表。一种解决方法是在内部查询中使用子查询:

UPDATE tblitem 
SET imagefilename = 
(
    SELECT imagefilename 
    FROM (SELECT * FROM tblitem) AS t 
    WHERE itemid = 2
)
WHERE itemid = 1

关于mysql - 更新字段设置为同一字段中行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39908284/

相关文章:

mysql,从一个字段复制到另一个字段

php - Azure 如何覆盖 PHP 应用程序中的 MySQL 连接字符串?

java - hibernate javax.persistence.RollbackException : Error while committing the transaction

c# - SQL条件语句?

php - 如何从数据库中获取数据并在php页面上回显?

SQL Server 代理作业未运行

mysql - Excel ODBC 连接删除列

mysql - 如何合并 MySQL 中的 3 个表?

sql - 带有 NOT IN 的多个 SELECT - 内部 Select 语句返回空,整个 SELECT 返回空

sql - Postgres Group 通过忽略空值