2016-09-22 16 views
2

我的Laravel 5.2那些在laravel列相等的值選擇行5.2

例如新的用戶,我有數據行是這樣的:

mytable 
------------------------------- 
url   | ip   
------------------------------- 
google.com | 11.44.180.149  <----- 
msn.com  | 11.44.180.149 
google.com | 11.44.180.149  <----- 
yahoo.com | 11.44.180.149   
google.com | 11.44.180.149  <----- 

我想選擇所有的行是2或3列重視他們都是平等的,delete行等於它的多個

例如轉換成這樣:

mytable 
------------------------------- 
url   | ip   
------------------------------- 
google.com | 11.44.180.149  <----- 
msn.com  | 11.44.180.149 
yahoo.com | 11.44.180.149  

夥計們,我很抱歉,因爲英文說得不好。

謝謝

+0

爲什麼不在兩列中只使用一個唯一鍵值,這樣只有一個條目可以存在? – Styphon

+0

@Styphon,因爲我有'created_at'列我需要3天前或1周前的顯示報告和表格圖表的所有數據 –

+1

我想你所追求的是'DISTINCT'關鍵字,請嘗試'SELECT DISTINCT * FROM mytable' – Styphon

回答

1

您可以使用groupBy()法雄辯:

MyTable::groupBy('ip')->get(); 

或查詢生成器:

DB::table('mytable')->groupBy('ip')->get(); 
+0

我測試了你的答案,但它不是選擇行,該網址和IP是相同的,它給我所有的行!我想給我任何等於 –

0

首先,您需要選擇您要查詢的列,然後做一個DISTINCT。

DB::table('mytable')->select('url','ip')->Distinct()->get(); 

這應該只包括每個匹配集之一。

+0

的行我測試了你的答案,但它不是選擇'url'和'ip'是相同的行,它給我所有的行!我想給我任何相等值的行 –

0

如果你試試這個,

$myTable = MyTable::groupBy('url', 'ip') 
       ->get(['url', 'ip']); 

$myTable = DB::table('mytable')->groupBy('url', 'ip') 
       ->get(['url', 'ip']);  

請檢查該代碼。

相關問題