gpt4 book ai didi

mySQL Wordpress 从 wp_usermeta.value 查询创建表不起作用

转载 作者:行者123 更新时间:2023-11-29 22:21:28 25 4
gpt4 key购买 nike

正在为工作项目开发我的第一个 WP 插件/学习 SQL。

我正在使用 mySQL 5.5,并计划通过 PHP 中的 $wpdb->query() 函数运行以下代码,尽管我现在直接在 phpMyAdmin 中进行测试。

我正在尝试创建一个表,该表组合并简​​化了 wp_usermeta 表和另一个插件(buddypress)中的信息,以创建一个表,然后我可以拉出该表来创建按不同领域(名称、位置、点)组织的用户报告。

根据同事的建议,我制作了一个新表来合并数据。

CREATE TABLE new_table(
user_id varchar(255),
first_name varchar(255),
last_name varchar(255),
points varchar(255),
location varchar(255)

然后我将使用 wp_usermeta 表中的值进行更新。如果您不知道用户元表如下所示:

| umeta_id |用户 ID |元键 |元值 |

| 1 | 20 |姓氏 |美国能源部 |

| 2 | 20 |名字|约翰 |

| 3 | 20 |点 | 500 |

| 4 | 33 | 33姓氏 |污垢|

| 5 | 33 | 33名字|乔|

| 3 | 33 | 33点 | 800 |

然后是具有类似结构的 buddypress 表。

|编号 |字段 ID |用户 ID |值|

| 1 | 1 | 20|纽约 |

| 2 | 2 | 20 |蓝色|

| 3 | 1 | 33 | 33伦敦 |

| 4 | 2 | 33 | 33红色|

user_id 字段标识用户,并且在各个表中都是相同的,但表之间不互相引用。

所以我尝试使用此代码

INSERT INTO new_table( user_id, last_name )
SELECT user_id, meta_value
FROM wp_usermeta
WHERE meta_key = 'last_name';

UPDATE new_table
SET first_name = wp_usermeta.meta_value
WHERE new_table.user_id = wp_usermeta.user_id
AND wp_usermeta.meta_key = 'first_name';

返回“‘where 子句’中的未知列‘wp_usermeta.user_id’”

我发现有关 UPDATE 的建议是在列周围加上引号。喜欢

UPDATE new_table
SET first_name = "wp_usermeta.meta_value"
WHERE new_table.user_id = "wp_usermeta.user_id"
AND "wp_usermeta.meta_key" = 'first_name';

这将正常运行,但first_name列仍为NULL。

有什么建议吗?

最佳答案

这解决了问题。

UPDATE new_table as table
SET first_name = (
SELECT meta_value
FROM wp_usermeta
WHERE table.user_id = wp_usermeta.user_id
AND wp_usermeta.meta_key = 'first_name');

关于mySQL Wordpress 从 wp_usermeta.value 查询创建表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30668575/

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