gpt4 book ai didi

mysql - 使用从另一个表连接的数据批量更新 MySQL 表

转载 作者:行者123 更新时间:2023-11-28 23:20:47 27 4
gpt4 key购买 nike

这不是特定于 WordPress 的,但值得注意的是它是我正在使用的 WP 数据库...

我需要为所有具有 post_type='appearance' 的条目更新 posts 表值 post_title。当前的 post_title 以所需的名称开头,但以“appearance [some #]”结尾。所以,从“appearance”到末尾需要去掉,需要用表postmeta中的meta_value替换,其中meta_key = _place_id 并且 post_id 等于 posts 表中的 ID

例如:有一个 ID 为 102 的帖子,标题为“John Doe appearance 102”。在 postmeta 表中,meta_key = _place_idpost_id = 102meta_value = 108。因此,最终结果将是 post_title = John Doe 108

这超出了我的理解范围,但我想加入是必要的。我认为两个单独的查询是有意义的。所以,类似于:

UPDATE posts

SET post_title = TRIM(TRAILING ' appearance %' FROM post_title)

WHERE post_type='appearance'

UPDATE posts

left join postmeta on
posts.ID= postmeta.post_id
set
posts.post_title = CONCAT(posts.post_title, " ", postmeta.meta_value WHERE postmeta.meta_key = '_place_id')

最佳答案

您可以通过使用 SUBSTRING_INDEX() 在单个查询中执行此操作:

UPDATE posts p
LEFT JOIN postmeta pm
ON p.ID = pm.post_id
SET p.post_title = CONCAT(SUBSTRING_INDEX(p.post_title, 'appearance', 1), pm.meta_value)
WHERE pm.meta_key = '_place_id'

采用 SUBSTRING_INDEX('John Doe appearance 102', 'appearance', 1) 将返回 appearance 出现之前的所有内容,这是 John Doe(末尾有一个空格)。然后,我们可以简单地连接 meta_value

关于mysql - 使用从另一个表连接的数据批量更新 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41688712/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com