<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # where子句 ### [](https://octobercms.com/docs/database/query#where-clauses)Where子句 #### 簡單的where子句 要將`where`子句添加到查詢,請`where`在查詢構建器實例上使用方法。最基本的調用`where`需要三個參數。第一個參數是列的名稱。第二個參數是運算符,可以是數據庫支持的任何運算符。第三個參數是要針對該列求值的值。 例如,下面是一個查詢,該查詢驗證“ votes”列的值等于100: ~~~ $users = Db::table('users')->where('votes', '=', 100)->get(); ~~~ 為方便起見,如果您只是想驗證一列是否等于給定值,則可以將該值作為第二個參數直接傳遞給該`where`方法: ~~~ $users = Db::table('users')->where('votes', 100)->get(); ~~~ 當然,在編寫`where`子句時,您可以使用其他各種運算符: ~~~ $users = Db::table('users') ->where('votes', '>=', 100) ->get(); $users = Db::table('users') ->where('votes', '<>', 100) ->get(); $users = Db::table('users') ->where('name', 'like', 'T%') ->get(); ~~~ #### “或”語句 您可以將約束鏈接在一起,也`or`可以在查詢中添加子句。該`orWhere`方法接受與該方法相同的參數`where`: ~~~ $users = Db::table('users') ->where('votes', '>', 100) ->orWhere('name', 'John') ->get(); ~~~ > **提示:**您還可以前綴`or`到任何地方陳述方式下面,使條件的“OR”的條件-例如`orWhereBetween`,`orWhereIn`等等。 #### “之間”聲明 該`whereBetween`方法驗證列的值是否在兩個值之間: ~~~ $users = Db::table('users') ->whereBetween('votes', [1, 100])->get(); ~~~ 該`whereNotBetween`方法驗證列的值是否位于兩個值之外: ~~~ $users = Db::table('users') ->whereNotBetween('votes', [1, 100]) ->get(); ~~~ #### “在哪里”聲明 該`whereIn`方法驗證給定數組中是否包含給定列的值: ~~~ $users = Db::table('users') ->whereIn('id', [1, 2, 3]) ->get(); ~~~ 該`whereNotIn`方法驗證給定數組中**不**包含給定列的值: ~~~ $users = Db::table('users') ->whereNotIn('id', [1, 2, 3]) ->get(); ~~~ #### “ Where null”語句 該`whereNull`方法驗證給定列的值為`NULL`: ~~~ $users = Db::table('users') ->whereNull('updated_at') ->get(); ~~~ 該`whereNotNull`方法驗證列的值**不是**`NULL`: ~~~ $users = Db::table('users') ->whereNotNull('updated_at') ->get(); ~~~ ### [](https://octobercms.com/docs/database/query#advanced-where-clauses)高級where子句 #### 參數分組 有時,您可能需要創建更高級的where子句,例如“ where where”或嵌套參數分組。Laravel查詢構建器也可以處理這些。首先,讓我們看一下括號內分組約束的示例: ~~~ Db::table('users') ->where('name', '=', 'John') ->orWhere(function ($query) { $query->where('votes', '>', 100) ->where('title', '<>', 'Admin'); }) ->get(); ~~~ 如您所見,傳遞`Closure`給`orWhere`方法將指示查詢構建器開始約束組。該`Closure`會收到您可以使用設置應包含在括號組內的約束的查詢生成器實例。上面的示例將產生以下SQL: ~~~ select * from users where name = 'John' or (votes > 100 and title <> 'Admin') ~~~ #### 存在陳述 該`whereExists`方法允許您編寫`where exist`SQL子句。該`whereExists`方法接受一個`Closure`參數,該參數將接收一個查詢構建器實例,該實例允許您定義應放置在“ exists”子句中的查詢: ~~~ Db::table('users') ->whereExists(function ($query) { $query->select(Db::raw(1)) ->from('orders') ->whereRaw('orders.user_id = users.id'); }) ->get(); ~~~ 上面的查詢將產生以下SQL: ~~~ select * from users where exists ( select 1 from orders where orders.user_id = users.id ) ~~~ #### JSON“ where”語句 October CMS還支持在提供對JSON列類型的支持的數據庫上查詢JSON列類型。要查詢JSON列,請使用`->`運算符: ~~~ $users = Db::table('users') ->where('options->language', 'en') ->get(); $users = Db::table('users') ->where('preferences->dining->meal', 'salad') ->get(); ~~~ 您可以`whereJsonContains`用來查詢JSON數組(SQLite不支持): ~~~ $users = Db::table('users') ->whereJsonContains('options->languages', 'en') ->get(); ~~~ MySQL和PostgreSQL支持`whereJsonContains`多個值: ~~~ $users = Db::table('users') ->whereJsonContains('options->languages', ['en', 'de']) ->get(); ~~~ 您可以用來`whereJsonLength`按其長度查詢JSON數組: ~~~ $users = Db::table('users') ->whereJsonLength('options->languages', 0) ->get(); $users = Db::table('users') ->whereJsonLength('options->languages', '>', 1) ->get(); ~~~ ### [](https://octobercms.com/docs/database/query#conditional-clauses)條件條款 有時,您可能希望子句僅在其他情況成立時才應用于查詢。例如,`where`如果傳入請求中存在給定的輸入值,則您可能只想應用語句。您可以使用以下`when`方法完成此操作: ~~~ $role = $request->input('role'); $users = Db::table('users') ->when($role, function ($query, $role) { return $query->where('role_id', $role); }) ->get(); ~~~ 該`when`方法僅在第一個參數為時執行給定的閉包`true`。如果第一個參數是`false`,將不執行閉包。 您可以將另一個Closure作為方法的第三個參數傳遞`when`。如果第一個參數的值為假,則此閉包將執行。為了說明如何使用此功能,我們將使用它來配置查詢的默認排序: ~~~ $sortBy = null; $users = Db::table('users') ->when($sortBy, function ($query, $sortBy) { return $query->orderBy($sortBy); }, function ($query) { return $query->orderBy('name'); }) ->get(); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看