1 フォロワー

インターフェース yii\db\QueryInterface

実装クラスyii\db\ActiveQueryyii\db\ActiveQueryInterfaceyii\db\Query
利用可能バージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/QueryInterface.php

QueryInterface は、データベースクエリで実装されるべき最小限のメソッドセットを定義します。

このインターフェースのデフォルト実装は、yii\db\QueryTrait によって提供されています。

これは、one() インスタンスまたは all() を取得するためのサポートを備えています。limit()offset() を使用したページネーションを許可します。orderBy() を使用したソートがサポートされており、アイテムは where() を使用して一部の条件に一致するように制限できます。

公開メソッド

継承されたメソッドを非表示

メソッド 説明 定義元
addOrderBy() クエリにORDER BY句を追加します。 yii\db\QueryInterface
all() クエリを実行し、すべての結果を配列として返します。 yii\db\QueryInterface
andFilterWhere() 空のパラメータを無視して、既存のWHERE句に追加のWHERE句を追加します。 yii\db\QueryInterface
andWhere() 既存のWHERE句に追加のWHERE句を追加します。 yii\db\QueryInterface
count() レコード数を返します。 yii\db\QueryInterface
emulateExecution() クエリの実行をエミュレートするかどうかを設定し、データストアとの相互作用を防ぎます。 yii\db\QueryInterface
exists() クエリ結果にデータ行が含まれているかどうかを示す値を返します。 yii\db\QueryInterface
filterWhere() 空のパラメータを無視して、クエリのWHERE句を設定します。 yii\db\QueryInterface
indexBy() indexBy() プロパティを設定します。 yii\db\QueryInterface
limit() クエリのLIMIT句を設定します。 yii\db\QueryInterface
offset() クエリのOFFSET句を設定します。 yii\db\QueryInterface
one() クエリを実行し、結果の単一行を返します。 yii\db\QueryInterface
orFilterWhere() 空のパラメータを無視して、既存のWHERE句に追加のWHERE句を追加します。 yii\db\QueryInterface
orWhere() 既存のWHERE句に追加のWHERE句を追加します。 yii\db\QueryInterface
orderBy() クエリのORDER BY句を設定します。 yii\db\QueryInterface
where() クエリのWHERE句を設定します。 yii\db\QueryInterface

メソッドの詳細

継承されたメソッドを非表示

addOrderBy() public abstract method

クエリにORDER BY句を追加します。

こちらも参照してください orderBy().

public abstract $this addOrderBy ( $columns )
$columns string|array

ソート対象の列(と方向)。列は、文字列(例:「id ASC、name DESC」)または配列(例:`['id' => SORT_ASC、'name' => SORT_DESC]`)のいずれかで指定できます。列に括弧が含まれていない限り(列にDB式が含まれていることを意味します)、このメソッドは列名を自動的に引用符で囲みます。

戻り値 $this

クエリオブジェクト自体

                public function addOrderBy($columns);

            
all() public abstract method

クエリを実行し、すべての結果を配列として返します。

public abstract array all ( $db null )
$db yii\db\Connection|null

クエリを実行するために使用されるデータベース接続。このパラメータが指定されていない場合、`db` アプリケーションコンポーネントが使用されます。

戻り値 array

クエリ結果。クエリ結果が何もない場合、空の配列が返されます。

                public function all($db = null);

            
andFilterWhere() public abstract method

空のパラメータを無視して、既存のWHERE句に追加のWHERE句を追加します。

新しい条件と既存の条件は、「AND」演算子を使用して結合されます。

こちらも参照してください

public abstract $this andFilterWhere ( array $condition )
$condition array

新しいWHERE条件。このパラメータの指定方法については、where()を参照してください。

戻り値 $this

クエリオブジェクト自体

                public function andFilterWhere(array $condition);

            
andWhere() public abstract メソッド

既存のWHERE句に追加のWHERE句を追加します。

新しい条件と既存の条件は、「AND」演算子を使用して結合されます。

こちらも参照してください

public abstract $this andWhere ( $condition )
$condition array

新しいWHERE条件。このパラメータの指定方法については、where()を参照してください。

戻り値 $this

クエリオブジェクト自体

                public function andWhere($condition);

            
count() public abstract メソッド

レコード数を返します。

public abstract integer|string|null count ( $q '*', $db null )
$q string

COUNT式。デフォルトは'*'。

$db yii\db\Connection|null

クエリを実行するために使用されるデータベース接続。このパラメータが指定されていない場合、`db` アプリケーションコンポーネントが使用されます。

戻り値 integer|string|null

レコード数。

                public function count($q = '*', $db = null);

            
emulateExecution() public abstract メソッド (バージョン 2.0.11 から利用可能)

クエリの実行をエミュレートするかどうかを設定し、データストアとの相互作用を防ぎます。

このモードが有効になると、one()all()exists()など、クエリ結果を返すメソッドは、空の値またはfalseを返します。 `0=1` のようなfalseとなるWHERE条件を設定した場合など、プログラムロジックでクエリが結果を返さないことを示す場合に、このメソッドを使用する必要があります。

public abstract $this emulateExecution ( $value true )
$value boolean

クエリの実行を防止するかどうか。

戻り値 $this

クエリオブジェクト自体。

                public function emulateExecution($value = true);

            
exists() public abstract メソッド

クエリ結果にデータ行が含まれているかどうかを示す値を返します。

public abstract boolean exists ( $db null )
$db yii\db\Connection|null

クエリを実行するために使用されるデータベース接続。このパラメータが指定されていない場合、`db` アプリケーションコンポーネントが使用されます。

戻り値 boolean

クエリ結果にデータの行が含まれているかどうか。

                public function exists($db = null);

            
filterWhere() public abstract メソッド

空のパラメータを無視して、クエリのWHERE句を設定します。

こちらも参照してください

public abstract $this filterWhere ( array $condition )
$condition array

WHERE句に追加されるべき条件。このパラメータの指定方法については、where()を参照してください。

戻り値 $this

クエリオブジェクト自体

                public function filterWhere(array $condition);

            
indexBy() public abstract メソッド

indexBy() プロパティを設定します。

public abstract $this indexBy ( $column )
$column string|callable

クエリ結果をインデックスする列名。これは、指定された行データに基づいてインデックス値を返すcallable(例:無名関数)も可能です。callableのシグネチャは次のようになります。

function ($row)
{
    // return the index value corresponding to $row
}
戻り値 $this

クエリオブジェクト自体

                public function indexBy($column);

            
limit() public abstract メソッド

クエリのLIMIT句を設定します。

public abstract $this limit ( $limit )
$limit integer|null

制限数。制限を無効にするには、nullまたは負の値を使用します。

戻り値 $this

クエリオブジェクト自体

                public function limit($limit);

            
offset() public abstract メソッド

クエリのOFFSET句を設定します。

public abstract $this offset ( $offset )
$offset integer|null

オフセット。オフセットを無効にするには、nullまたは負の値を使用します。

戻り値 $this

クエリオブジェクト自体

                public function offset($offset);

            
one() public abstract メソッド

クエリを実行し、結果の単一行を返します。

public abstract array|boolean one ( $db null )
$db yii\db\Connection|null

クエリを実行するために使用されるデータベース接続。このパラメータが指定されていない場合、`db` アプリケーションコンポーネントが使用されます。

戻り値 array|boolean

クエリ結果の最初の行(配列として)。クエリ結果が何もない場合はfalseを返します。

                public function one($db = null);

            
orFilterWhere() public abstract メソッド

空のパラメータを無視して、既存のWHERE句に追加のWHERE句を追加します。

新しい条件と既存の条件は「OR」演算子を使用して結合されます。

こちらも参照してください

public abstract $this orFilterWhere ( array $condition )
$condition array

新しいWHERE条件。このパラメータの指定方法については、where()を参照してください。

戻り値 $this

クエリオブジェクト自体

                public function orFilterWhere(array $condition);

            
orWhere() public abstract method

既存のWHERE句に追加のWHERE句を追加します。

新しい条件と既存の条件は「OR」演算子を使用して結合されます。

こちらも参照してください

public abstract $this orWhere ( $condition )
$condition array

新しいWHERE条件。このパラメータの指定方法については、where()を参照してください。

戻り値 $this

クエリオブジェクト自体

                public function orWhere($condition);

            
orderBy() public abstract method

クエリのORDER BY句を設定します。

こちらも参照してください addOrderBy().

public abstract $this orderBy ( $columns )
$columns string|array

ソート対象の列(と方向)。列は、文字列(例:「id ASC、name DESC」)または配列(例:`['id' => SORT_ASC、'name' => SORT_DESC]`)のいずれかで指定できます。列に括弧が含まれていない限り(列にDB式が含まれていることを意味します)、このメソッドは列名を自動的に引用符で囲みます。

戻り値 $this

クエリオブジェクト自体

                public function orderBy($columns);

            
where() public abstract method

クエリのWHERE句を設定します。

配列として指定された$conditionは、以下の2つの形式のいずれかになります。

  • ハッシュ形式: ['column1' => value1, 'column2' => value2, ...]
  • 演算子形式: [operator, operand1, operand2, ...]

ハッシュ形式の条件は、一般的に次のSQL式を表します: column1=value1 AND column2=value2 AND ...。値が配列の場合、IN式が生成されます。値がnullの場合、生成された式にはIS NULLが使用されます。いくつかの例を以下に示します。

  • ['type' => 1, 'status' => 2](type = 1) AND (status = 2) を生成します。
  • ['id' => [1, 2, 3], 'status' => 2](id IN (1, 2, 3)) AND (status = 2) を生成します。
  • ['status' => null]status IS NULL を生成します。

演算子形式の条件は、指定された演算子に従ってSQL式を生成します。演算子には以下のものが含まれます。

  • and: オペランドはANDを使用して連結する必要があります。例えば、['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)を生成します。このメソッドは、クォートやエスケープは行いません

  • or: オペランドがORを使用して連結されることを除いて、and演算子と同様です。例えば、['or', ['type' => [7, 8, 9]], ['id' => [1, 2, 3]]](type IN (7, 8, 9) OR (id IN (1, 2, 3)))を生成します。

  • not: これは1つのオペランドのみを受け取り、クエリ文字列の前にNOTを付加することでその否定を構築します。例えば['not', ['attribute' => null]]は条件NOT (attribute IS NULL)になります。

  • between: オペランド1は列名で、オペランド2と3は、列が含まれる範囲の開始値と終了値である必要があります。例えば、['between', 'id', 1, 10]id BETWEEN 1 AND 10を生成します。

  • not between: BETWEENNOT BETWEENに置き換えられることを除いて、betweenと同様です。

  • in: オペランド1は列またはDB式で、オペランド2は列またはDB式が属するべき値の範囲を表す配列です。例えば、['in', 'id', [1, 2, 3]]id IN (1, 2, 3)を生成します。このメソッドは、列名を適切に引用し、範囲内の値をエスケープします。

    複合IN条件を作成するには、列名と値の配列を使用できます。値は列名でインデックス付けされます: ['in', ['id', 'name'], [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar']] ]

    IN条件の値を取得するために使用するサブクエリを指定することもできます: ['in', 'user_id', (new Query())->select('id')->from('users')->where(['active' => 1])]

  • not in: INNOT INに置き換えられることを除いて、in演算子と同様です。

  • like: オペランド1は列またはDB式で、オペランド2は列またはDB式が類似するべき値を表す文字列または配列です。例えば、['like', 'name', 'tester']name LIKE '%tester%'を生成します。値の範囲が配列として与えられる場合、複数のLIKE述語が生成され、ANDを使用して連結されます。例えば、['like', 'name', ['test', 'sample']]name LIKE '%test%' AND name LIKE '%sample%'を生成します。このメソッドは、列名を適切に引用し、値内の特殊文字をエスケープします。自分でパーセント記号を一致する値に追加したい場合は、3番目のオペランドにfalseを指定して行うことができます。例えば、['like', 'name', '%tester', false]name LIKE '%tester'を生成します。

  • or like: オペランド2が配列の場合、ORを使用してLIKE述語を連結することを除いて、like演算子と同様です。

  • not like: LIKENOT LIKEに置き換えられることを除いて、like演算子と同様です。

  • or not like: ORを使用してNOT LIKE述語を連結することを除いて、not like演算子と同様です。

  • exists: オペランド1は、EXISTS条件を構築するために使用されるクエリオブジェクトです。例えば['exists', (new Query())->select('id')->from('users')->where(['active' => 1])]は、次のSQL式になります: EXISTS (SELECT "id" FROM "users" WHERE "active"=1)

  • not exists: EXISTSNOT EXISTSに置き換えられることを除いて、exists演算子と同様です。

  • さらに、次のように任意の演算子を指定できます: ['>=', 'id', 10]という条件は、次のSQL式になります: id >= 10

このメソッドは、既存のWHERE条件を上書きすることに注意してください。andWhere()またはorWhere()を使用することを検討してください。

こちらも参照してください

public abstract $this where ( $condition )
$condition array

WHERE句に配置する必要がある条件。

戻り値 $this

クエリオブジェクト自体

                public function where($condition);