Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 将字段集更新为同一字段中行的值_Mysql_Sql - Fatal编程技术网

Mysql 将字段集更新为同一字段中行的值

Mysql 将字段集更新为同一字段中行的值,mysql,sql,Mysql,Sql,我试图更新一个特定字段,并将其设置为同一字段中某行的值 到目前为止,我尝试的是: 我在这里试图做的是将itemid1的值更新为itemid2的值 这可能吗?提前感谢。请使用加入: UPDATE tblitem t JOIN (SELECT imagefilename from tblitem where itemid = 2 ) t2 SET t.imagefilename = t2.imagefilename WHERE itemid = 1;

我试图更新一个特定字段,并将其设置为同一字段中某行的值

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

我在这里试图做的是将itemid1的值更新为itemid2的值


这可能吗?提前感谢。

请使用
加入

UPDATE tblitem t JOIN
       (SELECT imagefilename from tblitem where itemid = 2
       ) t2
    SET t.imagefilename = t2.imagefilename
    WHERE itemid = 1;

SQL标准和其他数据库允许您参考
update
语句中其他地方正在更新的表。但是,MySQL不允许这样做。
JOIN
是一个非常简单的解决方法。

使用
JOIN

UPDATE tblitem t JOIN
       (SELECT imagefilename from tblitem where itemid = 2
       ) t2
    SET t.imagefilename = t2.imagefilename
    WHERE itemid = 1;

SQL标准和其他数据库允许您参考
update
语句中其他地方正在更新的表。但是,MySQL不允许这样做。
JOIN
是一个非常简单的解决方法。

在MySQL中,如果您在表上执行
更新
/
插入
/
删除
查询,则无法在内部查询中引用所述表。一种解决方法是在内部查询中使用子查询:

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

在MySQL中,如果对表执行
更新
/
插入
/
删除
查询,则不能在内部查询中引用所述表。一种解决方法是在内部查询中使用子查询:

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