MySQL:ERROR 1054(42S22):'where子句'中的未知列

时间:2010-07-28 23:13:19

标签: mysql sql sql-update mysql-error-1054

我正在对WordPress数据库进行一些更改。我需要使用来自另一个名为ebdurls的表的URL替换wp-posts表上GUID字段中的URL。表格的描述如下:

wp_posts:我需要的两个字段的字段类型是:

ID - > bigint(20)未签名

guid - > VARCHAR(255)

我需要导出到wp_posts的数据的表是:

ebdurls:

标题 - > VARCHAR(255)

url - > varchar(255)

ebdid - > bigint(20)未签名

一切似乎都是正确的,但是当我应用下一个查询时,它会给我一个我真的无法得到的错误。我试过引用字段,表格等......无处不在,但没有运气。

的MySQL>更新wp_posts设置wp_posts.guid = ebdurls.url其中wp_posts.id = ebdurls.ebdid;

ERROR 1054(42S22):'where子句'中的未知列'ebdurls.ebdid'

错误在哪里?

2 个答案:

答案 0 :(得分:1)

您尚未指定ebdurls是什么,请在查询中添加from语句:

UPDATE 
    wp_posts, ebdurls
SET 
    wp_posts.guid = ebdurls.url 
WHERE 
    wp_posts.id=ebdurls.ebdid;

修改 比尔是对的,现在修改了格式。糟糕。

答案 1 :(得分:0)

ebdurls.*没有任何价值。这就是导致错误的原因。数据库不知道你想要做什么。

您可能需要使用子查询或将此逻辑添加到您的应用程序中。

或类似的东西:

UPDATE wp_posts, ebdurls ...