哪里不存在不工作(数据重复!!!)

时间:2015-10-29 18:41:03

标签: php mysql wordpress

所以我将一个表中的用户数据添加到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 
                       )
                 )

在这一个上,如果记录已经存在,它将不再复制记录,如果有人可以看到什么是错的,那么你的帮助将非常受欢迎。

1 个答案:

答案 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
                       )
                 )