1、group(字段名)
根據設置的分組的字段名去除重復;
2、distinct(true)
一般寫在field()前,根據field定義的字段去除重復;
區別:group('字段名')不能和聚合查詢如:count();sum();等連用,而distinct(true)可以,但並沒有什么卵用,聚合函數計算的結果並不是根據去除重復后的查詢出的數據來計算。
group('字段名')可配合having()函數一起使用,從分組的結果中篩選(通常是聚合條件)數據
Db::table('think_user') ->field('username,max(score)') ->group('user_id') ->having('count(test_time)>3') ->select();
例如group('字段名')和聚合查詢連用
輸出結果,報錯
如果非得用group('字段名')統計可以這樣寫:先分組查詢,再計算總數
用法:
輸出結果:
上面例子演示的是當只查詢一個字段去除重復時,group和distinct(true)效果相同。
注:當只查詢一個字段時,用column()函數可以返回一個一維數組
版權聲明:TP5查詢去除重復的方法及注意事項和用法(distinct,group與having) 來源於網絡,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。原文鏈接:https://blog.csdn.net/qq_41912505/article/details/86511950