where は、Yii Model でクエリを実行するときに必須です。
ここでメソッドは
として宣言されています。パラメータ $condition の型は文字列または配列
1 です。SQL で押すだけです。 where 条件、例えば
配列の場合、2 つの形式の書き方があります。
column1=value1 AND column2=value2 AND ....
['type' => ; 1, 'status' => 2]
//Generate
(type = 1) AND (status = 2)
値が配列の場合、SQL のIN
ステートメントは次のようになります。生成される ;
['id' => [1, 2, 3], 'status' => 2]
//Generate
(id IN (1, 2, 3)) AND ( status = 2)
値が Null の場合、Is Nullステートメントが生成されます。
['status' => null]
//Generate
status IS NULL
2 番目の記述方法は、さまざまな演算子に基づいてさまざまな SQL 条件を生成します。['and', 'id=1', 'id=2']
//
id=1 AND id=2を生成
オペランドも配列の場合、次のような形式の文字列に変換されます。['and', 'type=1', ['or', 'id=1', 'id=2']]
//
type=1 ANDを生成(id=1 OR id= 2)
注: このメソッドは参照またはエンコードしません。['between', 'id', 1, 10]
//Generate
id BETWEEN 1 AND 10
['in', 'id', [1, 2, 3]]
//
id IN (1, 2, 3) を生成します
注: このメソッドは列を参照し、配列内の値もエンコードします。['like', 'name', 'tester']
//Generate
name LIKE '%tester%'
値が配列の場合、複数の like ステートメントが生成され、AND が使用されます接続します。のように['like', 'name', ['test', 'sample']]
//
name LIKE '%test%' AND name LIKE '%sample%' を生成します
注: これメソッドは列を参照し、配列内の値をエンコードします。 場合によっては、% を自分で処理する必要がある場合は、3 番目のパラメータを使用できます。['like', 'name', '%tester', false]
//Generate
name LIKE '%tester'