繁体   English   中英

在同一表的更新上的子查询mysql

[英]subquery mysql on Update in same table

我知道你们当中有些人会讨厌我问我,但是我有这个:

UPDATE `f.forums` 
   SET `order` = 66
     , forumHeader = (SELECT forumName FROM  `f.forums` WHERE id = 1) 
 WHERE `id` = 8

显然不能正常工作,我搜索了2个小时的问题,得到了很多内部联接和内容,但无济于事,我从同一张桌子获得了名字。

我现在已经选择不了了。

我没有离开SELECT forumName

尝试加入,由于一个或另一个原因而失败

我可以在PHP中使用第二个$ sql查询来处理此问题,但我知道可以在一个数据库中完成。

1)您的(可能)使用不正确,应该是`f`.`forums`(除非表名实际上是f.forums否则。不应在内部。

2)您无法使用自身的子查询来更新表。

我相信这可以实现您想要的:

UPDATE `f`.`forums` AS f1, `f`.`forums` AS f2
   SET f1.`order` = 66
     , f1.forumHeader = f2.forumName
WHERE f1.`id` = 8 AND f2.id = 1
;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM