0

後で PhPExcel を介して Excel ビューに出力される一連のデータを生成する検索条件をフォーマットしようとしています。目的の機能は、エントリの start_date フィールドと end_date フィールドが一致する場合、エントリが配列に含まれることです。フィールドが一致しない場合は除外されます。

    $my_data = $this-> RecordsMaster-> find("all", array(
        'conditions' => array(
            "RecordsMaster.start_date" == "RecordsMaster end_date"
        )
    ));

問題は、上記のステートメントが実際には何もしないという事実にあります。開始日と終了日が異なる mySQL テーブルの行は、Excel へのデータ ダンプに含まれます。

4

1 に答える 1

2

質問の条件はあまり意味がありません

質問の条件は次と同等です。

$my_data = $this-> RecordsMaster-> find("all", array(
    'conditions' => array(
        false
    )
));

次のSQLが生成されるため、レコードは返されません。

WHERE 0;

フィールドの照合に key => value を使用しないでください

質問のコードのタイプミスを修正しても、目的の sql は生成されません。生成されるのは次のとおりです。

WHERE `RecordsMaster`.`start_date` = "RecordsMaster end_date"

start_dateつまり、その文字列はどこにありますか。

意図した機能は、start_date フィールドと end_date フィールドがエントリに一致する場合です。

生成WHERE field = otherfieldするには、文字列として指定できます。

$my_data = $this-> RecordsMaster-> find("all", array(
    'conditions' => array(
        "RecordsMaster.start_date = RecordsMaster.end_date"
    )
));
于 2013-07-09T19:44:12.797 に答える