0
    $v = array(1,11.38,15.8);
    $sortByPrice = $this->Product->query
    (
    "SELECT *,
    CASE `currency` 
        WHEN '1' THEN $v[0]
        WHEN '2' THEN $v[1]
        WHEN '3' THEN $v[2]
    END AS 'ratio'
    FROM products
    ORDER BY price*ratio DESC
    "
    );

上記のものを検索関数に変換したいのですが、そのようなことを試しました(しかし、機能しません)。

    $v = array(1,11.38,15.8);
    $bla = $this->Product->find('all', array(
    'conditions' => array(
    'Product.currency',
    '((
        CASE WHEN 
            Product.currency=1 THEN $v[0]
            Product.currency=2 THEN $v[1]
            Product.currency=3 THEN $v[2]
        END
    )) AS ratio'),
    'order' => 'ratio',
     'limit' => 10
     ));

誰かがクエリを検索に変換できますか

4

1 に答える 1

0

あなたは鍵を入れていconditionsます。それをキーに移動fieldsするか、virtualField- にすることでうまくいくかもしれません

編集:また$v[0]、一重引用符で囲んでも、実際には変数に置き換えられません-そのテキストとして表示されます。

于 2012-05-11T20:58:57.527 に答える