2

SQLでユーザー定義関数を作成し、WHERE句でユーザー定義関数を使用する方法について、このページに示されている例を検討してください。

mysql> CREATE FUNCTION myFunction(in_rep_id INT)
    ->      RETURNS INT
    ->      READS SQL DATA
    -> BEGIN
    ->      DECLARE customer_count INT;
    ->
    ->      SELECT COUNT(*)
    ->           INTO customer_count
    ->        FROM employee
    ->       WHERE id=in_rep_id;
    ->
    ->      RETURN(customer_count);
    ->
    -> END$$

mysql> SELECT id,myFunction(id)
    ->   FROM employee
    ->  WHERE myFunction(id)>0
    ->  ORDER BY myFunction(id) desc;

CakePHPを使用してこれを複製するにはどうすればよいですか?CakePHPモデルの一部として関数を定義する必要がありますか?または、CREATE FUNCTION構文をCakePHP内から実行する方法はありますか?

どんな助けでもいただければ幸いです。

4

1 に答える 1

2

構文は実際にはCREATE FUNCTIONDDL (データ定義言語) であり、他の DDL 構文 (例: CREATE TABLE) と同様に、Cake ではサポートされていません。を介して関数を実行できる$this->Model->query( 'your sql here' )と思いますが、試す必要はありませんでした。

メソッドを介して任意の SQL を実際に実行できることを付け加えてModel::query()おきますが、実際に必要になる前にテーブルを配置するのと同じように、これを配置する必要があると仮定しました。

于 2010-10-13T16:55:01.047 に答える