1. 程式人生 > >ThinkPHP去重 distinct和group by

ThinkPHP去重 distinct和group by

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

$test_data = M('hot');  //例項化資料表
$data = $test_data->Distinct(true)->field('descriprion')->order('description desc')->select();  //利用distinct方法去重
$data = $test_data->group('description')->order('description desc')->select();  //利用group方法去重
dump($data);

對於兩種去重方式:
利用distinct去重、簡單易用,但只能對於單一欄位去重,並且最終的結果也僅為去重的欄位,實際應用價值不是特別大。
利用group去重,最終的顯示結果為所有欄位,且對單一欄位進行了去重操作,效果不錯,但最終顯示結果除去去重欄位外,按照第一個欄位進行排序,可能還需要處理。

相關推薦

ThinkPHP distinctgroup by

近期專案中,遇到資料表去重要求,對於ThinkPHP的去重有了更加準確的認識和體會。 兩種去重方式: $test_data = M('hot'); //例項化資料表 $data = $test_d

ThinkPHP distinctgroup by總結

近期專案中,遇到資料表去重要求,對於ThinkPHP的去重有了更加準確的認識和體會。 兩種去重方式://例項化資料表 $test_data = M('hot'); //利用distinct方法去重 $data = $test_data->Distinct(true)

tp5 查詢 distinctgroup by

例子 $teachers_list=Db::name('class') ->alias('c') ->join('admin a','c.teachers_id = a.id') ->join('teachers t','a

關於distinct group by邏輯淺析

在資料庫操作中,我們常常遇到需要將資料去重計數的工作。例如: 表A,列col A C A B C D A B 結果就是一共出現4個不同的字母A、B、C、D 即結果為4 大體上我們可以選擇count(distinct col)的方法和group+c

Sql distinctgroup by的區別

distinct和Group by 區別:  distinct只是將重複的行從結果中出去;  group by是按指定的列分組,一般這時在select中會用到聚合函式。  distinct是把不同的記錄顯示出來。 

distinctgroup by 去掉重複資料分析

詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp40 用distinct關鍵字只能過濾查詢欄位中所有記錄相同的(記錄集相同),而如果要指定一個欄位卻沒有效果,另外distinct關鍵字會排序 。 s

oracle中distinctgroup by的區別

其實二者沒有什麼可比性,但是對於不包含聚集函式的GROUP BY操作來說,和DISTINCT操作是等價的。不過雖然二者的結果是一樣的,但是二者的執行計劃並不相同。 在Oracle9i中: SQL> SELECT * FROM V$VERSION; BANNER -------

Hive中distinctGroup by效率對比及處理方式

select res.flag AS flag ,res.source AS source ,res.template AS template ,SUM(res.click_user)

mysql聯合查詢是用DISTINCTGROUP BY之間的效能區別

在開發過程中遇到的問題: 有兩張表,登入記錄表和IP歸屬表 需求:查詢某個地區和某個時間段登入的記錄 有登入表有4000條資料,IP歸屬表有400條資料 用GROUP BY查詢結果 SELECT * FROM login_log WHERE acctLoginIP IN

distinctgroup by區別

distinct簡單來說就是用來去重的,而group by的設計目的則是用來聚合統計的,兩者在能夠實現的功能上有些相同之處,但應該仔細區分,因為用錯場景的話,效率相差可以倍計。 單純的去重操作使用distinct,速度是快於group by的。 distinct di

Hive SQL 的 DISTINCT GROUP BY 的效能對比

    Hive SQL 的 DISTINCT 和 GROUP BY 都可用於資料去重,此文不講解 DISTINCT 和 GROUP BY 的基本用法,重點分析 DISTINCT 和 GROUP BY 用於資料去重時的效

distinctgroup by的效率

加了索引之後 distinct 比沒加索引的 distinct 快。 加了索引之後 group by 比沒加索引的 group by 快。 再來對比 :distinct  和 group by 不管是加不加索引 group by 都比 distinct 快。因此使用的時候建

distinct還是group by

distinct簡單來說就是用來去重的,而group by的設計目的則是用來聚合統計的,兩者在能夠實現的功能上有些相同之處,但應該仔細區分,因為用錯場景的話,效率相差可以倍計。 單純的去重操作使用distinct,速度是快於group by的。 distinct distinct支援單列、多

資料庫查詢結果distinctgroup by

一般情況下,資料庫去重複有以下那麼三種方法:第一種:  兩條記錄或者多條記錄的每一個欄位值完全相同,這種情況去重複最簡單,用關鍵字distinct就可以去掉。例:1SELECT DISTINCT * FROM TABLE第二種:  兩條記錄之間之後只有部分欄位的值是有重複的,

mongodb.driver 2.4.4 c# 第三篇 distinct group by

// 實現sql查詢如:select name from table group by name//mongodb 實現db.company.distinct("origin_labels",{company_name:/^Arrow/}) //根據模糊查詢結果去重// c#

with as group by 代替 count distinct,提高效能

資料庫:postgresql 背景:使用distinct在對某張表某個欄位做去重統計的時候,發現有統計特別慢(30-40s),當前表大小是400w,distinct 後大概60w sql 很簡單(出於安全考慮,欄位和表名稱都做了替換): 原sql: select count

thinkphp統計數據sql

別人 table rom pos auth 計數 style user 不同的 DISTINCT 方法用於返回唯一不同的值 官方文檔給出的示例: $Model->distinct(true)->field(‘userName‘)->select();

partition bygroup by對比

今天大概弄懂了partition by和group by的區別聯絡。 1. group by是分組函式,partition by是分析函式(然後像sum()等是聚合函式); 2. 在執行順序上, 以下是常用sql關鍵字的優先順序 from > where > group by >

mysql聯查中使用ifgroup by會讓你的結果不是你想要的

mysql中的if語句遇到統計count group by的時候會出現不準確的情況,原因是分組後if條件的結果以第一條為準,不會跟著分組   例如: SELECT SQL_NO_CACHE t1.*,t2.nick_name,t2.avatar,IF(t1.user_id=104080,

linq中order by group by (含lambda表示式實現)以及綜合案例

一、Linq對誰適用 linq的語法通過System.Linq下面的Enumerable類提供支援,也就是說,只要是實現了IEnumerable<T>的物件都可以使用Linq的語法來查詢。LINQ定義了大約40個查詢操作符,如select、from、in、where、group by 以及ord