MySQL: ОШИБКА 1054 (42S22): неизвестный столбец в предложении «где» - PullRequest
1 голос
/ 29 июля 2010

Я делаю некоторые изменения в базе данных WordPress.Мне нужно заменить URL-адреса в поле GUID в таблице wp-posts на URL-адреса из другой таблицы, называемой ebdurls.Описание таблиц выглядит следующим образом:

wp_posts: тип поля для двух нужных мне полей:

ID -> bigint (20) unsigned

guid -> varchar (255)

И таблица, где у меня есть данные, которые мне нужно экспортировать в wp_posts,это:

ebdurls:

title -> varchar (255)

url ->varchar (255)

ebdid -> bigint (20) без знака

Все кажется правильным, но когда я подаю заявкуследующий запрос дает мне ошибку, которую я действительно не могу получить.Я пробовал цитировать поля, таблицы и т. Д. Везде, но не повезло.

mysql> обновить wp_posts set wp_posts.guid = ebdurls.url где wp_posts.id = ebdurls.ebdid;

ОШИБКА 1054 (42S22): неизвестный столбец 'ebdurls.ebdid' в 'предложении where'

Где ошибка?

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Вы не указали, что такое ebdurls, добавьте оператор from в свой запрос:

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

редактирование: Билл был прав, сейчас исправил формат. К сожалению.

0 голосов
/ 29 июля 2010

ebdurls.* не имеет значения. Это то, что вызывает вашу ошибку. База данных не имеет представления о том, что вы пытаетесь сделать.

Возможно, вам нужно использовать подзапрос или добавить эту логику в ваше приложение.

Или что-то вроде:

UPDATE wp_posts, ebdurls ...

...