Mysql 将字段集更新为同一字段中行的值
我试图更新一个特定字段,并将其设置为同一字段中某行的值 到目前为止,我尝试的是: 我在这里试图做的是将itemid1的值更新为itemid2的值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;
这可能吗?提前感谢。请使用
加入:
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