CakePHP1.3 findメソッドの比較演算子を凄く誤解してた件
テーブルから1件のレコードを条件付きで取得しようと下記のように記述しました。
//hogeが1のレコードを条件付きで1件取得したいができない $data = $this->Model->find( 'first', array('conditions' => array('Model.hoge' == '1')));
しかし、うまくいきません。
実行クエリを出力してみたら、where句にconditionsパラメータの値が全く反映されていません…
ですが、下記のようにするとうまくいきます。
//hogeが1のレコードを条件付きで1件取得できる $data = $this->Model->find( 'first', array('conditions' => array('Model.hoge' => '1')));
あれ、conditionsパラメータ中の => って実行するクエリの演算子じゃなかったの!?
ってよく見たら => は配列演算子で >= Mysqlの演算子ですね…
http://dev.mysql.com/doc/refman/4.1/ja/comparison-operators.html
なんか凄くアホっぽいのでもう寝ます…
ちなみに、>=演算子を使いたい場合は下記のように実行すればすんなりできました。
//hogeが1以上の条件のレコードを1件取得できる $data = $this->Model->find( 'first', array('conditions' => array('Model.hoge >= ' => '1')));