1. 程式人生 > >tp5 去重查詢 distinct和group by

tp5 去重查詢 distinct和group by

例子

				$teachers_list=Db::name('class')
				->alias('c')
				->join('admin a','c.teachers_id = a.id')
				->join('teachers t','a.id = t.admin_id')
				->field('t.id,t.title,t.content,t.img,t.description,t.lectureship,a.qq,c.teachers_id')
				->where('c.pid',$id)
				->Distinct(true)
				->select();

近期專案中,遇到資料表去重要求,對於ThinkPHP的去重有了更加準確的認識和體會。  兩種去重方式:

//例項化資料表

$test_data= M('hot');

//利用distinct方法去重

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

//利用group方法去重

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

dump($data);

對於兩種去重方式: 

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

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

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

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