MySQL 从另一列同名更新列
MySQL update column from another column of same name
我对一个 mySQL 声明有点麻烦,我确定它并不复杂,但我不太精通 mySQL 所以现在我'我卡住了。我说的数据库是 wordpress,所以希望很多人能理解这个结构,但我会尽力解释我需要什么和我试过什么...
我的问题是:
我有一些数据需要从一个摘录复制到另一个摘录...
基本上,我已经在大量附件中输入了标题,但我需要将该标题复制到 'download' post_types 上的 post_excerpt。它们通过一些名为“_download_attachment_id”的元数据链接到数据库中
因此,我需要将 'download' post_excerpt 设置为附件 post_excerpt,其中 'download' ID 等于 [=52= 中的 meta_value(附件 ID) ]元table.
我意识到附件 'caption' 存储在 wp_posts 的 'post_excerpt' 列中,所以我很困惑如何将一个 post_excerpt 更新为另一个 post_excerpts的价值。
为了尝试让它更简单,我使用此 SQL
创建了一个 VIEW
CREATE VIEW `attachment_excerpt` AS
SELECT a.ID aid, a.post_excerpt as excerpt, b.post_id pid
FROM rpz_posts a, rpz_postmeta b
WHERE a.ID = b.meta_value
AND b.meta_key = '_download_attachment_id'
这给了我一个视图,其中包含我需要的所有内容,但名称不同。现在,通过该视图设置,我可以使用以下 SQL 语句来获取我需要的一切...
SELECT rpz_posts.ID, attachment_excerpt.excerpt
FROM rpz_posts, attachment_excerpt
WHERE rpz_posts.ID = attachment_excerpt.pid
AND rpz_posts.post_excerpt = '';
这给了我 post 我需要更新的 ID,以及我需要更新它的摘录文本 to.What 我无法工作的是更新...我试过了,但没用:
UPDATE rpz_posts SET rpz_posts.post_excerpt = attachment_excerpt.excerpt
WHERE rpz_posts.ID = attachment_excerpt.pid
AND rpz_posts.post_excerpt = '';
我得到的错误是:
#1054 - 'where clause'
中的未知列 'attachment_excerpt.pid'
我意识到这是一个很长的 post,所以我希望我没有 over-complicated 它。如果有人能指出正确的方向,我将永远感激不已!
您的更新应如下所示:
UPDATE rpz_posts,attachment_excerpt
SET rpz_posts.post_excerpt = attachment_excerpt.excerpt
WHERE rpz_posts.ID = attachment_excerpt.pid
AND rpz_posts.post_excerpt = '';
这是因为您必须指明所涉及的两个表才能执行匹配。
MySQL docs 更新中。
我对一个 mySQL 声明有点麻烦,我确定它并不复杂,但我不太精通 mySQL 所以现在我'我卡住了。我说的数据库是 wordpress,所以希望很多人能理解这个结构,但我会尽力解释我需要什么和我试过什么...
我的问题是:
我有一些数据需要从一个摘录复制到另一个摘录... 基本上,我已经在大量附件中输入了标题,但我需要将该标题复制到 'download' post_types 上的 post_excerpt。它们通过一些名为“_download_attachment_id”的元数据链接到数据库中 因此,我需要将 'download' post_excerpt 设置为附件 post_excerpt,其中 'download' ID 等于 [=52= 中的 meta_value(附件 ID) ]元table.
我意识到附件 'caption' 存储在 wp_posts 的 'post_excerpt' 列中,所以我很困惑如何将一个 post_excerpt 更新为另一个 post_excerpts的价值。
为了尝试让它更简单,我使用此 SQL
创建了一个 VIEWCREATE VIEW `attachment_excerpt` AS
SELECT a.ID aid, a.post_excerpt as excerpt, b.post_id pid
FROM rpz_posts a, rpz_postmeta b
WHERE a.ID = b.meta_value
AND b.meta_key = '_download_attachment_id'
这给了我一个视图,其中包含我需要的所有内容,但名称不同。现在,通过该视图设置,我可以使用以下 SQL 语句来获取我需要的一切...
SELECT rpz_posts.ID, attachment_excerpt.excerpt
FROM rpz_posts, attachment_excerpt
WHERE rpz_posts.ID = attachment_excerpt.pid
AND rpz_posts.post_excerpt = '';
这给了我 post 我需要更新的 ID,以及我需要更新它的摘录文本 to.What 我无法工作的是更新...我试过了,但没用:
UPDATE rpz_posts SET rpz_posts.post_excerpt = attachment_excerpt.excerpt
WHERE rpz_posts.ID = attachment_excerpt.pid
AND rpz_posts.post_excerpt = '';
我得到的错误是: #1054 - 'where clause'
中的未知列 'attachment_excerpt.pid'我意识到这是一个很长的 post,所以我希望我没有 over-complicated 它。如果有人能指出正确的方向,我将永远感激不已!
您的更新应如下所示:
UPDATE rpz_posts,attachment_excerpt
SET rpz_posts.post_excerpt = attachment_excerpt.excerpt
WHERE rpz_posts.ID = attachment_excerpt.pid
AND rpz_posts.post_excerpt = '';
这是因为您必须指明所涉及的两个表才能执行匹配。
MySQL docs 更新中。