首頁  >  文章  >  後端開發  >  如何在 Laravel Eloquent 中建構具有多個 OR 和 AND 條件的複雜查詢?

如何在 Laravel Eloquent 中建構具有多個 OR 和 AND 條件的複雜查詢?

Barbara Streisand
Barbara Streisand原創
2024-11-27 01:18:11741瀏覽

How to Construct Complex Queries with Multiple OR and AND Conditions in Laravel Eloquent?

在Laravel Eloquent 中使用多個OR 和AND 條件進行查詢

在Laravel Eloquent 中,建構涉及多個OR 和AND 條件的複雜查詢有時可能需要請仔細考慮。

使用 OR 和 進行查詢AND

使用 Eloquent 表示以下 SQL 語句:

WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)

利用 Laravel 7.x/4.中引入的邏輯分組:

Model::where(function ($query) {
    $query->where('a', '=', 1)
          ->orWhere('b', '=', 1);
})
->where(function ($query) {
    $query->where('c', '=', 1)
          ->orWhere('d', '=', 1);
});

在此範例中,查詢連接兩個單獨的邏輯群組,其中每個群組對其各自的列集套用 OR 條件。然後使用 AND 條件連接這些邏輯組。

使用原始 SQL 進行複雜查詢

對於更複雜的查詢,可能需要使用原始 SQL。這可以使用 DB::raw() 方法來完成。例如,要使用原始SQL 執行與上述相同的查詢:

$query = "SELECT * FROM table_name WHERE (a = 1 OR b = 1) AND (c = 1 OR d = 1)";
$results = DB::select(DB::raw($query));

請記住,使用原始SQL 可以繞過Eloquent 的查詢產生器保護,應謹慎使用,因為它可能會導致潛在的安全漏洞.

以上是如何在 Laravel Eloquent 中建構具有多個 OR 和 AND 條件的複雜查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn