簡體   English   中英

選擇所有列,但與Laravel中的數據庫表不同

[英]Select all columns but distinct from database table in Laravel

貝婁SQL命令運行完美:

select * from `product` group by `owner_name` order by `id` asc 

當我在Laravel項目中翻譯以上代碼以獲得相同的結果時:

Product::select('*')
        ->orderBy('id','asc')->groupBy('owner_name')
         ->get();

這個laravel代碼給我返回錯誤

SQLSTATE [42000]:語法錯誤或訪問沖突:1055'db1.product.id'不在GROUP BY中(SQL:從product組中選擇*按owner_name順序按id asc排序)

問題是我有許多重復的記錄,但某些列上的記錄略有不同。 我只需要獲得一次owner_name即可。

編輯應用程序的數據庫配置文件config/database.php

在mysql數組中,設置strict => false以禁用MySQL的嚴格模式

您無需執行“ select(*)”,默認情況下它將選擇所有列數據。

嘗試這個:

Product::orderBy('id','asc')->groupBy('owner_name')
     ->get();

如果要獲取選定的列,可以執行以下操作:

Product::select(['column_1', 'column_2'])
    ->orderBy('id','asc')->groupBy('owner_name')
     ->get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM