如何处理SQL中的重复记录?

拉詹

我正在将文件上传到mysql数据库。现在,该文件包含用户登录和注销记录。下面是它的结构。结构

我正在使用PHP codeigniter上载该文件并将其数据插入SQL。这里date_data定义为UNIQUE,因此我不会在同一天获得任何重复记录,因为它包含每日用户登录和注销数据的信息。

现在,如果我上传了11月1日至12月10日的数据。然后再次从12月1日到1月1日上传数据,我会收到一个错误消息,因为它将为从12月1日开始的重复数据和其他连续日期提供错误信息。我是否可以跳过重复的数据并插入剩余的唯一数据?

至于我当前的代码,当发现重复数据时它将停止执行。我只想插入唯一的数据。

下面是我要插入到SQL表中的代码:

控制器

public function upload()
{ 


    $file = rand(1000, 100000) . "-" . $_FILES['file']['name'];
    $file_loc = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $folder = "uploads/";
    $location = $_FILES['file'];


    $new_size = $file_size / 1024; // new file size in KB
    $new_file_name = strtolower($file);
    $final_file = str_replace(' ', '-', $new_file_name); // make file name in lower case

    if (move_uploaded_file($file_loc, $folder . $final_file)) 
    {



            $handle = fopen($folder.$final_file, "r") or die("file cannot open");

            if ($handle) {
                while (($line = fgets($handle)) !== false) 
                {
                    $lineArr = explode("\t", "$line");    

                    $result = $this->attendance_m->insert_file_content($lineArr) ;    
                }
                if (fclose($handle)) {

                      $this->alert('successfully uploaded', 'admin/attendance.php?success');
                    redirect('admin/attendance');
                }

            } 
            else{
                echo "file cannot open";
            } 

    }

    }

该模型:

公共功能insert_file_content($ lineArr){

$data = array(
   'emp_id'     => $lineArr[0],
   'date_data'  => $lineArr[1],
   'abc'        => $lineArr[2],
   'def'        => $lineArr[3],
   'entry'      => $lineArr[4],
   'ghi'        => $lineArr[5],
);

  $this->db->insert('daily_data2', $data);
   }
Basheer Kharoti

忽略插入时的重复记录

 $data = array(
 'emp_id'     => $lineArr[0],
 'date_data'  => $lineArr[1],
 'abc'        => $lineArr[2],
 'def'        => $lineArr[3],
 'entry'      => $lineArr[4],
 'ghi'        => $lineArr[5],
);

$sql = "INSERT IGNORE INTO `daily_data2` 
(`emp_id`,`date_data`,`abc`,`def`,`entry`,`ghi`) 
 VALUES
(?,?,?,?,?,?)"; 
$this->db->query($sql, $data);

您也可以这样尝试

$result = $this->db->get_where('daily_data2', array('date_data' => $data['date_data'));

if(count( $result->result_array() ) < 1)
{
    //insert a new record
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何处理SQL中的重复记录?

来自分类Dev

如何处理SQL Server数据库中的重复记录

来自分类Dev

在Oracle SQL中处理重复记录

来自分类Dev

如何删除SQL中的重复记录?

来自分类Dev

在SQL Server中处理空值和重复记录

来自分类Dev

SQL中的重复记录

来自分类Dev

如何在Django中处理重复记录

来自分类Dev

如何从SQL Server删除重复记录?

来自分类Dev

消除SQL中的重复记录

来自分类Dev

删除SQL中的重复记录

来自分类Dev

在PL / SQL中检查重复记录

来自分类Dev

合并SQL Server中的重复记录

来自分类Dev

从 SQL 查询中获取重复记录

来自分类Dev

如何防止Rails中的重复记录

来自分类Dev

通过sql识别和处理重复记录

来自分类Dev

处理Tableau固定计算中的重复记录

来自分类Dev

处理Tableau固定计算中的重复记录

来自分类Dev

sql重复记录与更改

来自分类Dev

sql重复记录与更改

来自分类Dev

SQL连接重复记录

来自分类Dev

如何更新SQL表中许多重复记录中的第一个?

来自分类Dev

如何避免在表类型sql server中插入重复记录

来自分类Dev

如何使 MongoDB 的列成为 SQL Server 中的主键并避免重复记录?

来自分类Dev

如何通过 SQL Server 将重复记录的索引排序到另一列中

来自分类Dev

如何使用 SUM 函数从 SQL Server 中获取重复记录的总数

来自分类Dev

SQL Server:如何允许在小表上重复记录

来自分类Dev

SQL Server:如何允许在小表上重复记录

来自分类Dev

Access SQL:如何查找日期之间的重复记录

来自分类Dev

如何防止书签表中Rails中的重复记录?