Home > Article > Backend Development > 关于避免插入重复数据并统计重复数据的数量的有关问题
关于避免插入重复数据并统计重复数据的数量的问题
有一组数据需要插入数据库,比如从EXCEL导入一组数据到MYSQL数据库,如何避免重复插入,这里所指的重复并不是指某一个字段的重复,而是多个字段组合的重复,比如:
id name content
1 张三 吃饭
2 李四 吃饭
3 张三 喝水
如上,如果name 和 content字段的值都重复才算重复,比如再插入一条"张三,吃饭"就提示重复并统计出重复的数量和已插入数据的数量,求PHP语句。
------解决方案--------------------
$excelData = array( array('张三', '吃饭'), array('李四', '吃饭'), array('张三', '喝水'), array('李四', '吃饭'),// 重复 array('张三', '喝水') // 重复);$mark = array(); // 用来当作唯一标识foreach ($excelData as $key => $arr) { $md5Mark = md5($arr[0] . $arr[1]); if (isset($mark[$md5Mark])) { unset($excelData[$key]); } else { $mark[$md5Mark] = 1; }}// 此时你就可以操作$excelData而不用判断了,当然了你也可以直接在else中进行sql语句的组合或者数据库写入操作p($excelData);/*输出:Array( [0] => Array ( [0] => 张三 [1] => 吃饭 ) [1] => Array ( [0] => 李四 [1] => 吃饭 ) [2] => Array ( [0] => 张三 [1] => 喝水 ))*/<div class="clear"> </div>