所以我将一个表中的用户数据添加到Wordpress的插件中的另一个
$sql = mysql_query("INSERT INTO wp_bp_xprofile_data (user_id, field_id, value)
SELECT ID, '7', cedula
FROM employees
WHERE NOT EXISTS(SELECT *
FROM wp_bp_xprofile_data
WHERE (ID=user_id AND
'7'=field_id AND
cedula=value
)
)
查询运行正常,但是当运行第二个/第三个...时,它重复我从employees表中提取的所有数据到xprofile。通过“不存在的地方”,我希望每个员工数据只有一次添加 。
这很奇怪,无法弄清楚什么是错的,即使在另一个表的早期查询中,它也不会复制员工并正常工作,这里我将数据从wp_users提取到wp_usermeta:
$sql2 = mysql_query("INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
SELECT ID, 'first_name', SUBSTRING_INDEX(display_name, ' ', 1)
FROM wp_users
WHERE NOT EXISTS(SELECT *
FROM wp_usermeta
WHERE (ID=user_id AND
'first_name'=meta_key AND
SUBSTRING_INDEX(display_name, ' ', 1)=meta_value
)
)
在这一个上,如果记录已经存在,它将不再复制记录,如果有人可以看到什么是错的,那么你的帮助将非常受欢迎。
答案 0 :(得分:0)
没关系,只是想通了,员工和wp_bp_xprofile_data表都有一个'ID'列,而我在WHERE中的查询并不特定于哪个ID限制。现在可以使用:
INSERT INTO wp_bp_xprofile_data (user_id, field_id, value)
SELECT ID, '7', cedula
FROM employees
WHERE NOT EXISTS(SELECT *
FROM wp_bp_xprofile_data
WHERE (employees.ID=user_id AND
'7'=field_id AND
cedula=value
)
)