TP5查詢/統計去除重復的方法及注意事項和用法(distinct,group與having)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM