-
構造一個 yii\db\Query 對象.
-
執行 query() 方法
public function actionTestDb() { //generates "SELECT id, name, email FROM user WHERE name = 'User10';" $user = (new \yii\db\Query()) ->select(['id', 'name', 'email']) ->from('user') ->where(['name' => 'User10']) ->one(); var_dump($user); }
Where()函數
-
string 格式 − 'name = User10'
-
hash 格式 − ['name' => 'User10', 'email => user10@gmail.com']
-
operator 格式 − ['like', 'name', 'User']
字串格式的示例
public function actionTestDb() { $user = (new \yii\db\Query()) ->select(['id', 'name', 'email']) ->from('user') ->where('name = :name', [':name' => 'User11']) ->one(); var_dump($user); }

哈希格式的例子
public function actionTestDb() { $user = (new \yii\db\Query()) ->select(['id', 'name', 'email']) ->from('user') ->where([ 'name' => 'User5', 'email' => 'user55@gmail.com' ]) ->one(); var_dump($user); }
輸出結果如下圖所示:
[operator, operand1, operand2]
-
and − ['and', 'id = 1', 'id = 2'] 會產生類似: id = 1 AND id = 2
-
between − ['between', 'id', 1, 15] 會產生類似:id BETWEEN 1 AND 15
-
not between − 類似 between 操作符, 但是 BETWEEN 被替換為 NOT BETWEEN
-
in − ['in', 'id', [5,10,15]] 會產生類似: IN (5,10,15)
-
not in − 類似 in 操作符,但是 IN 被替換為 NOT IN
-
like − ['like', 'name', 'user'] 會產生類似: name LIKE '%user%'
-
or like − 類似 like 操作符, 但是 OR 用來分割 LIKE 謂詞
-
not like − 類似於 like 操作符, 但是 LIKE 被 NOT LIKE 替代;
-
or not like − 類似 not like 運算符,但或用來連接 NOT LIKE 謂詞
-
exists − 要求一個運算元必須是 yii\db\Query 類的一個實例
-
not exists − 類似 exists 操作符,但是構建了一個NOT EXISTS(子查詢)的運算式
-
<, <=, >, >=, 或任何其他資料庫操作符: ['<', 'id', 10] 會產生類似: id<10
操作符格式示例 -
public function actionTestDb() { $users = (new \yii\db\Query()) ->select(['id', 'name', 'email']) ->from('user') ->where(['between', 'id', 5, 7]) ->all(); var_dump($users); }
輸出結果如下圖所示:
OrderBy()函數
如下示例 −
public function actionTestDb() { $users = (new \yii\db\Query()) ->select(['id', 'name', 'email']) ->from('user') ->orderBy('name DESC') ->all(); var_dump($users); }
輸出結果如下圖所示:
groupBy()函數
如下示例 −
public function actionTestDb() { $users = (new \yii\db\Query()) ->select(['id', 'name', 'email']) ->from('user') ->groupBy('name') ->having('id < 5') ->all(); var_dump($users); }
輸出結果如下圖所示:
如下示例 −
public function actionTestDb() { $users = (new \yii\db\Query()) ->select(['id', 'name', 'email']) ->from('user') ->limit(5) ->offset(5) ->all(); var_dump($users); }
輸出結果如下圖所示:
-
all() − 返回一行為名稱-值對的數組。
-
one() − 返回第一行
-
column() − 返回第一列
-
scalar() − 返回結果的第一行和第一列的標量值。
-
exists() − 返回指示查詢是否包含任何結果值
-
count() 返回COUNT查詢結果
-
其他聚集查詢方法 - 包括:sum($q), average($q), max($q), min($q)。$q 參數可以是列名 或 DB 運算式。