CakePHP で 関数実行等、自由なSQLの記述方法(Postresql) cake1.2
たとえば 以下のような WHERE句を書きたい場合
FROM "tests" AS "Tests"
WHERE "Tests"."enable" = TRUE
AND "Tests.modified" <= ( now()::date + ( add_days || 'days')::interval )::date
ORDER BY modified DESC
query()を使えば自由に書けるが、取得したデータ配列の取得方法が違う
以下のような params を指定する。
$params = array(
'conditions' => array ( 'enable' =>'true',
array( "modified <= (now()::date + ( offset_days || 'days')::interval )::date)" ),
),
'order' => array( 'modified DESC' ),);
array( '.........' ) のように
array の中に記述するとそのまま表示される。
課題
複数のテーブルの場合は、テーブルを指定するには、
ダブルコーテーションで括るが、こればうまくいかない。
(この場合は、べたでSQLを書いて、query() 関数で取得する方法しか現在のところできない)
FROM "tests" AS "Tests"
WHERE "Tests"."enable" = TRUE
AND "Tests.modified" <= ( now()::date + ( add_days || 'days')::interval )::date
ORDER BY modified DESC
Mysqlでとうなるかは未確認