2016-10-05 2 views
0

매개 변수로 주문할 수 없습니다 : 나는 결과를 가져올 때CodeIgniter의 활성 기록 CASE 선택에서 작업하지만 난 내 모델에서 선택 다음 한

$this->db->select("*, product.id as id, product.price as price, attribute.price as att_price, CASE WHEN(attribute.price > 0) THEN attribute.price ELSE product.price END as newprice"); 

내가 $product->newprice 에코 할 수 있고 잘 작동합니다. 문제는 제품 가격 또는 속성 가격으로 결과를 주문하고 싶다는 것입니다. order_by()에서 비슷한 CASE을 사용하면 쉽게 작동 할 수 있습니다. 하지만 그 대신 나는 그것을 건너 뛰고 newprice을 사용하고 싶습니다. 내가 $this->db->order_by("newprice ASC")을하려고하면

가 나는 다음과 같은 오류 얻을 : 나는 기능에 의해 순서대로 newprice를 사용할 수없는 이유

Error Number: 105

Unknown column 'newprice' in 'where clause'

내가 이해할 수없는,하지만 나는 결과를 가져올 때 나는 newprice이 .

답변

0

그냥 아래 (에서 CASE WHEN 문)를 사용, 온도에 전체 쿼리를 넣어 :

$this->db->select("(*, product.id as id, product.price as price, attribute.price as att_price, (CASE WHEN(attribute.price > 0)     
THEN attribute.price ELSE product.price END;) as newprice) as temp"); 
$this->db->order_by("temp.newprice ASC")