gpt4 book ai didi

mysql - 在 Wordpress usermeta 表中批量插入 SQL

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

我的 Wordpress 数据库中有一个额外的表,其结构如下所示

CREATE TABLE `rsvp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`came` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `rsvp_id` (`uid`),
KEY `came` (`came`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--Other fields edited out for brevity
--uid here is the same as user_id in the Wordpress usermeta table

我想在 wp_usermeta 表中为 rsvp 表中拥有 的每个用户创建一个附加行 (meta_key = teamapps, meta_value = 1)来了=“1”。我的 rsvp 表中只有大约 15 个条目,因此我可以在紧要关头简单地执行一系列

INSERT INTO `wp_usermeta` (user_id,meta_key,meta_value) VALUES('uid','teamapps','1');

我还可以编写一个简单的 PHP 脚本来自动完成这项工作。但是,我想知道是否没有纯 SQL 方法来执行此操作 - 查询 rsvp 表来建立所有具有 came = 1 的用户,然后使用结果该查询在 wp_usermeta 表中执行插入操作。

我怀疑这可以通过JOIN以某种方式完成,但SQL几乎是我的薄弱套件,所以我不知道应该如何编写相关的SQL。也许这里有人可以提供帮助?

最佳答案

INSERT ... SELECT 应该可以完成您想要的操作。其想法是创建一个返回要插入的值的 SELECT 语句,然后在其前面加上包含列列表的 INSERT 子句。像(未经测试)的东西:

INSERT INTO `wp_usermeta` (user_id,meta_key,meta_value)
SELECT uid,'teamapps','1'
FROM `rsvp`
WHERE came = "1"

请注意,这是不可重新运行的,因此请检查 SELECT 部分是否仅返回您想要的内容。和/或向您的 WHERE 子句添加另一个 NOT EXISTS 条件,以检查 wp_usermeta 中的现有行。

关于mysql - 在 Wordpress usermeta 表中批量插入 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325115/

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