TP數據避免重複和去重處理

  • 2020 年 2 月 14 日
  • 筆記

一.先在你的數據表設置好唯一索引,sql語句如下:

alter table gift_doc add unique index(num_id);

如下圖

Db::name('giftDoc')->insert($data_list,true);

//只要第二個參數$replace 等於true就行,

tp核心框架封裝了,如下圖

二.如果入庫數據已經重複,不能添加唯一索引,數據輸出需要去重處理

//實例化數據表

$test_data= M('hot');

//利用distinct方法去重

$data=$test_data->Distinct(true)->field('num_id')->order('num_id desc')->select();

//利用group方法去重

$data=$test_data->group('description')->order('description desc')->select();

dump($data);

對於兩種去重方式:

利用distinct去重、簡單易用,但只能對於單一欄位去重,並且最終的結果也僅為去重的欄位,

實際應用價值不是特別大。

利用group去重,最終的顯示結果為所有欄位,且對單一欄位進行了去重操作,效果不錯,

但最終顯示結果除去去重欄位外,按照第一個欄位進行排序,可能還需要處理。