0

ユーザーが作成したレコードを含むインデックスをクエリしています。私のアプリケーションは複数のタイプのユーザーを持つことができるため、テーブルには CreatedByType と CreatedById があります。

特定の特定のユーザーによって作成された結果を除外したい。

// Exclude $userId from the results
$this->Client->SetFilter('CreatedById', $userId, true);

ただし、これにより、ID が のすべてのユーザー タイプからの結果が明らかに除外されます$userId。同じく:

// Exclude $userId from the results
$this->Client->SetFilter('CreatedByType', $userType, true);

タイプ のすべてのユーザーからの結果を除外します$userType

AND2 つの属性を制約に結合し、それらに対してクエリを実行するにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

仮想結合属性を計算し、それをフィルタリングできます。

$this->Client->setSelect("*, IF(CreatedById=$userId,1,0)+IF(CreatedByType=$userType,1,0) as myfilter");
$this->Client->setFilterRange('myfilter',0,1);

(0 はどちらも一致しないことを意味し、1 は一方が一致したことを意味し、2 は両方が一致したことを意味します。したがって、setfilterrange は、両方が一致するドキュメントを除外します!)

于 2012-12-18T18:17:19.410 に答える