2017-05-25 66 views
0
SELECT `id` FROM `jobs` WHERE `job_type` IN ('topemployercheckbox1','topemployercheckbox2') OR `job_category` IN ('Contract','Intern') ; 

我需要將此MySQL查詢轉換爲laravel 5.4查詢構建器查詢。如何將此MySQL查詢轉換爲等效的Laravel 5.4 Elequent /查詢生成器查詢?

+4

在您提出問題之前,您需要自己嘗試一下。你應該已經完成​​了你的研究,你應該能夠在這裏提交你的發現,並說明什麼有效,什麼沒有。然後只有SO的成員才能提出改變和改進建議。你不能指望SO的成員爲你寫代碼。學習[我如何問一個好問題?](http://stackoverflow.com/help/how-to-ask) – Gayan

+0

我是Laravel5的新手。我搜查了很多,有或在哪裏和在哪裏,但我沒有找到任何像或在哪裏。我不同意你說「你不能指望SO的成員爲你寫代碼,學習」。我沒有要求一個確切的代碼,即使是小指導也會幫助我。 – Joy

+0

既然你說你已經搜索了很多,這意味着你可能已經想出了某種代碼。它不工作,這就是爲什麼你要求幫助。你可以發佈它。然後,試圖回答的人確實知道你已經嘗試過並需要改進。相反,你通過問「怎麼......?」開始提問。並顯示了預期的輸出結果,並詢問「我需要轉換..」它看起來像你在尋求幫助而不累人。 – Gayan

回答

0

你可以做

ModelName::whereIn('job_type',['topemployercheckbox1','topemployercheckbox2']) 
    ->orwhere(function($q){ 
      $q->whereIn('job_category',['Contract','Intern']) 
})->get('id'); 

ModelName::whereIn('job_type',['topemployercheckbox1','topemployercheckbox2']) 
    ->whereIn('job_category',['Contract','Intern'],'or')->get('id'); 
0

可以使用兩個工會,其中查詢。

$query1= \DB::table("jobs")select("id")->whereIn("job_type",['topemployercheckbox1','topemployercheckbox2']); 
$query2=\DB::table("jobs")select("id")->whereIn("job_category",['Contract','Intern']); 
$job_ids= $query1->union($query2)->get(); 
0

您的查詢會如下所示。在這裏,我們認爲你的型號名稱是Job。

Job::select('id') 
    ->whereIn('job_type',['topemployercheckbox1','topemployercheckbox2']) 
    ->orWhereIn('job_category',['Contract','Intern']) 
    ->get(); 
+0

謝謝,@Alankar,我搜查了,但我沒有得到**或其中**。感謝幫助。 – Joy

+0

請檢查這個https://github.com/laravel/framework/blob/5.3/src/Illuminate/Database/Query/Builder.php#L931你可以看到這個方法是內部調用whereIn提供第三個參數爲'或「 –

相關問題