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 回答