CI 묻고 답하기

제목 MYSQL SELECT 쿼리안에서 '@변수명 := a/b' 지정 후 재사용 오류
카테고리 CI 2, 3
글쓴이 투어마케팅코리아 작성시각 2021/06/30 11:41:27
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 10933   RSS

'@FX_RATE := IFNULL(RRSI.Frgn_Net / RRSI.Net_Total, 0) AS exchange_rate'

'@LOCAL_REVENUE := IFNULL(RR.net_amt_at_reserve + RR.com_amt_at_reserve, 0) AS LOCAL_RVNU'

'CAST( @LOCAL_REVENUE  AS DECIMAL(18,2)) AS revenue_Local'

'CAST(IF(RRSI.Comm_Base > 0, RRSI.Comm_Base, @LOCAL_REVENUE) AS DECIMAL(18,2)) AS revenue_Local_HQ'

'CAST( @LOCAL_REVENUE  * @FX_RATE AS DECIMAL(18,2)) AS revenue_USD'

'CAST(IF(RRSI.Comm_Base > 0, RRSI.Comm_Base, @LOCAL_REVENUE) * @FX_RATE AS DECIMAL(18,2)) AS revenue_USD_HQ'

 

이런식으로 SELECT안에서 @LOCAL_REVENUE, @FX_RATE를 지정한 뒤에

아래컬럼에서 재사용하려고 하는데

결과물로 빈 어레이만 나오네요.

$this->db->last_query() 나 $this->db->get_compiled_select() 로 쿼리를 추출해서 MySQL Workbench에서 돌려보면 또 잘 나옵니다.CI문제인가 해서 추출한 쿼리를 

mysqli_query($this->db->conn_id, $query);

로 해서 돌려봐도 빈결과물이 나오네요...

 

혹시 방법이 없을까요?  저번에 @변수 사용이 불가능하다고 봤던것같기도 하고...

(다시 찾으니 너무 안나오네요... 3시간은 찾아본거같은데)

 다음글 CI3 Query Builder 관련 질문 드립니다. (3)
 이전글 index.php 죽이기 잘됩니다! 다만 https일때... (2)

댓글

변종원(웅파) / 2021/06/30 12:36:19 / 추천 1

참고하세요. https://three-pleasure.tistory.com/256

선언한 같은 select 안에서는 사용안됩니다.

투어마케팅코리아 / 2021/06/30 14:11:04 / 추천 0

답변감사드립니다. 

$sql = $this->db->get_compiled_select();
$this->db->query('SELECT @FX_RATE:=1 AS FX_RATE, @LOCAL_RVNU:=10 AS LOCAL_RVNU;');
$data = $this->db->query($sql)->result_array();

이렇게 해결되었습니다..ㅠㅠ 중간에 삽질을 좀 해서 왜안나오지 이러고 있었네요.

변종원(웅파) / 2021/06/30 15:42:25 / 추천 0
투어마케팅코리아/ 결과실행이 없었군요. ^^