这里的上下文是将用户从现有的 Drupal 6 站点迁移到不再使用 Drupal 或任何其他 CMS 的新站点。Drupal,至少在 v6 中,使用了一种相当复杂的机制来存储额外的用户数据
- 用户数据进入
users
表格 - 您在一个名为的单独表中定义了数据键
profile_fields
- 以及名为 的表中的实际值
profile_values
。
profile_values 和用户共享一个 uid 字段。在我的新站点中,我使用的是一个单一的用户表,其结构如下
CREATE TABLE IF NOT EXISTS `users` (
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`rname` varchar(64)...
在原始 Drupal profile_values 表中,每个用户的 rname 条目(不同的 uid)由该 uid 和 14 的“fid”标识。
CREATE TABLE IF NOT EXISTS `profile_values` (
`fid` int(10) unsigned NOT NULL DEFAULT '0',
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`value` text,...
我需要做的是执行一些 SQL,它将从 profile_values 表中获取正确的值(对于 uid = UID & fid = 14)并更新 users 表。我隐约怀疑这将需要使用 INNER JOIN 等,但这远远超出了我的 SQL 技能水平(我最差的套件)。我将不胜感激有关如何实现这一点的任何提示。
我所追求的说明可能会有所帮助
user
表(之前)
uid name rname
1 Any - empty prior to operation
2 Eny - empty prior to operation
profile_values
桌子
uid fid value
1 13 v1-13
1 14 v1-14
2 11 v2-11
3 14 v2-14
user
表(后)
uid name rname
1 Any v1-14
2 Eny v2-14