mysql - 基于相似字段,使用同一表中另一行的数据更新一行
问题描述
我正在使用 wordpress,我想将数据从自定义字段复制到另一个自定义字段。
这是表格的视觉表示:
post_id meta_key meta_value
7 shortcode example text
7 video_url
20 shortcode sample text
20 video_url
如果他们的 post_id 匹配,我想将简码的 meta_value 复制到 video_url 的 meta_value
这是我到目前为止所拥有的,但我收到了语法错误:
UPDATE wp_postmeta
SET
meta_value = newdata.meta_value
FROM
(
SELECT
post_id,
meta_value
FROM wp_postmeta
WHERE
meta_key = 'shortcode'
) newdata
WHERE
meta_key = "video_url"
AND
post_id = newdata.post_id
这是我得到的错误:
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'FROM
(
SELECT
post_id,
meta_value
FROM wp_postme' at line 4
解决方案
更新数据时可以使用join
UPDATE wp_postmeta old
INNER JOIN wp_postmeta new ON old.post_id = new.post_id
SET old.meta_value = new.meta_value
WHERE old.meta_key = 'video_url' AND new.meta_key = 'shortcode';
推荐阅读
- ansible - 如何在 AWX 中为库存脚本存储和检索秘密?
- node.js - 如何使用 http-proxy 和 Harmonon 将脚本标记注入 HTML 正文
- django - Django Rest-Framework-Simplejwt 不适用于 modheader
- python - 感知器神经网络不会学习特定范围内的值
- python - 每个时期应用不同的数据增强
- javascript - JavaScript:*可以*通过调用/应用/绑定设置未定义的属性?
- javascript - 使用 express js 到 mongodb 在数据库中创建配置文件时出错
- node.js - Clipanion 无法提供命令
- entity-framework - 渴望加载没有导航属性的实体
- sql - 没有 COUNT 的子记录小计?