[英]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.