cakephp2
演算子

【CakePHP2】find検索 の conditions で否定演算子を使う場合

CakePHP2 で find の検索条件(conditions)を使用する場合、以下のように書くと思います。

$query = $users->find('all', [
    'conditions' => [
        'country' => 'Japan',
    ],
]);

この条件を否定で書くには、

$query = $users->find('all', [
    'conditions' => [
        'NOT' => [
            'country' => 'Japan',
        ],
    ],
]);

とすると思いますが、以下のようにも書けます。

$query = $users->find('all', [
    'conditions' => [
        'country !=' => 'Japan',
    ],
]);

否定演算子の != を使いますが、これは <> でも動きます。

DB的にはどちらを使ってもいいと思うのですが、Cookbookには != で書かれています。

また、CakePHP2 の Model.php にも != が使われている箇所があります。

Model.phpの_findNeighbors()
$query['conditions'][$field . ' !='] = $value;
Model.phpのisUnique()
$fields[$this->alias . '.' . $this->primaryKey . ' !='] = $this->id;

プロジェクトのコーディング規約で決まっていない場合、 != を使うのがよいと思います。