Php 将Wordpress用户管理迁移到自定义CMS

Php 将Wordpress用户管理迁移到自定义CMS,php,database,wordpress,key-value,user-management,Php,Database,Wordpress,Key Value,User Management,我有一个将wordpress网站迁移到自定义CMS的请求 问题是,这个wordpress网站有30000多名注册用户,而user_meta table非常不一致,因为在过去5年中,他们使用了不同的插件进行用户管理,因此一些用户在user_meta table中有10条记录,一些有50条记录,一些有多达150条记录(他们在这5年中存储了不同的用户信息) 我必须在非关键属性值数据库表中保存有关用户的所有相关数据(例如:用户名、姓氏、出生日期等)。因此,我将为用户创建常规表(具有特定列,如用户名、姓氏

我有一个将wordpress网站迁移到自定义CMS的请求

问题是,这个wordpress网站有30000多名注册用户,而user_meta table非常不一致,因为在过去5年中,他们使用了不同的插件进行用户管理,因此一些用户在user_meta table中有10条记录,一些有50条记录,一些有多达150条记录(他们在这5年中存储了不同的用户信息)

我必须在非关键属性值数据库表中保存有关用户的所有相关数据(例如:用户名、姓氏、出生日期等)。因此,我将为用户创建常规表(具有特定列,如用户名、姓氏、姓氏等)我必须将特定的数据记录从user\u meta迁移到新CMS的一个或多个相关表中。user\u meta表目前有数百万条记录(相关和不相关)

如何从用户元表中提取每个用户所需的所有数据(例如:用户名、名、姓、出生日期),但我需要的不是键值格式,而是可以导入到基于列的表中的常规格式(以便轻松导入)

谢谢


如果需要的话,我会在评论中为这个问题添加更多的细节。

确定你需要哪些元键。大多数元键你不需要,因为它们与wordpress设置有关,如“管理员颜色”等

那么你可以做这样的事情

或者一个非常大的SQL查询(可能与limit&offset一起批处理)


如果您需要任何非唯一的meta值,它将变得更加棘手。

导出数据库然后导入不起作用吗?问题是user\u meta有meta\u key和meta\u value列,我可以导出它们,但是在自定义CMS的新数据库中,我没有meta\u key和meta\u value,但是wordpress表中的键应该是d作为新数据库表中的列名。因此,如果meta_key是first_name,那么这就是新数据库表的一列。重点是我需要清除所有不必要的数据(anmari bellow给出了一个示例)。感谢responseok,这种处理大型sql查询的方法可能工作得很好,因为我可以让它工作数小时,时间和磁盘空间/内存都不是问题。我将在本地计算机上尝试基于您的查询的方法。如果没有更好的答案,并且该查询按预期工作,我会将您的答案标记为正确答案。比注:我试图对你的答案投赞成票,但我的声誉不够好:)非常感谢你的回答
SELECT T.ID, M1.meta_value AS first_name, M2.meta_value AS last_name, M4.meta_value AS event 
FROM wp_users AS T 
LEFT OUTER JOIN  wp_usermeta AS M1 ON (T.ID=M1.user_id AND M1.meta_key = 'first_name') 
LEFT OUTER JOIN  wp_usermeta AS M2 ON (T.ID=M2.user_id AND M2.meta_key = 'last_name') 
LEFT OUTER JOIN  wp_usermeta AS M4 ON (T.ID=M4.user_id AND M4.meta_key = 'event')   
ORDER BY T.ID ASC