2010-07-28 66 views
1

我正在對WordPress數據庫進行一些更改。我需要使用來自另一個名爲ebdurls的表的URL來替換wp-posts表上的GUID字段中的URL。表的描述如下:MySQL:錯誤1054(42S22):'where子句'中的未知列

wp_posts:字段類型爲兩個字段我需要的是:

ID - > BIGINT(20)無符號

的GUID - > VARCHAR(255)

而且在那裏我有我需要出口到wp_posts數據表是這樣的:

ebdurls:

標題 - > VARCHAR(255)

URL - > VARCHAR(255)

ebdid - > BIGINT(20)無符號

每個事情似乎是正確的,但是當我應用下一個查詢時,它給了我一個我實際上無法得到的錯誤。我嘗試過引用字段,表格等......無處不在,但沒有運氣。

mysql> update wp_posts set wp_posts.guid = ebdurls.url where wp_posts.id = ebdurls.ebdid;

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

哪裏錯了嗎?

回答

1

您還沒有指定什麼ebdurls是,從語句添加到您的查詢:

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

編輯: 比爾是正確的,現在已經固定了格式。哎呀。

+1

這是用於多表UPDATE的Microsoft SQL Server語法。 MySQL對子句進行不同的排序。 – 2010-07-29 00:17:15

+0

非常感謝,那就是答案! – javipas 2011-10-31 10:07:07

0

ebdurls.*沒有任何價值。這是什麼導致你的錯誤。數據庫不知道你想要做什麼。

您可能需要使用子查詢或將此邏輯添加到您的應用程序中。

或者類似的東西:

UPDATE wp_posts, ebdurls ...

相關問題