有一组数据需要插入数据库,比如从EXCEL导入一组数据到MYSQL数据库,如何避免重复插入,这里所指的重复并不是指某一个字段的重复,而是多个字段组合的重复,比如:
id   name content  
1    张三  吃饭  
2    李四  吃饭
3    张三  喝水如上,如果name 和 content字段的值都重复才算重复,比如再插入一条"张三,吃饭"就提示重复并统计出重复的数量和已插入数据的数量,求PHP语句。

解决方案 »

  1.   

    先select 计算出重复数量 (和已插入数据的数量?)达到条件的 再insert.
      

  2.   

    select * from tablename where name="张三" and content="吃饭";
    select count(*) from tablename group by name,content having count(*)>1
    不知道是否是楼主需要的……
      

  3.   

    建议用临时表,把你的excel 导入临时表再与工作表作连接。
      

  4.   

    $excelData = array(
        array('张三', '吃饭'),
        array('李四', '吃饭'),
        array('张三', '喝水'),
        array('李四', '吃饭'),// 重复
        array('张三', '喝水') // 重复
    );$ = array(); // 用来当作唯一标识
    foreach ($excelData as $key => $arr) {
        $md5Mark = md5($arr[0] . $arr[1]);
        if (isset($[$md5Mark])) {
            unset($excelData[$key]);
        } else {
            $[$md5Mark] = 1;
        }
    }// 此时你就可以操作$excelData而不用判断了,当然了你也可以直接在else中进行sql语句的组合或者数据库写入操作
    p($excelData);
    /*
    输出:
    Array
    (
        [0] => Array
            (
                [0] => 张三
                [1] => 吃饭
            )    [1] => Array
            (
                [0] => 李四
                [1] => 吃饭
            )    [2] => Array
            (
                [0] => 张三
                [1] => 喝水
            ))
    */