본문 바로가기
MySql

MySQL 5.0 reporting "concat does not exist"

by 베이스 공부 2020. 10. 30.
반응형

복잡한 연결이있는 쿼리가 있습니다. 결과가 null이 아닌 경우 여러 하위 선택의 결과를 연결하는 줄을 따라가는 것입니다. MySQL 5.1을 실행하는 개발 서버에서 5.0 보고서를 실행하는 프로덕션 서버에서는 잘 작동합니다 (복잡함으로 인해 약간 아플 수 있음).

FUNCTION database.concat does not exist

이것이 왜 그런지 아이디어가 있습니까? 불행히도 업그레이드는 현재 옵션이 아니므로 누군가가 밝은 아이디어를 가지고 있지 않는 한 나는이 보고서를 다시 작성하는 데 거의 매달릴 것입니다.

쿼리는 다음과 같습니다 (예, 제가 mysql을 끔찍하게 악용하고 있다는 것을 알고 있습니다. 지금은 따로 설정하겠습니다. 누구나 편리 할 수있는 별칭으로 하위 선택을 참조하는 방법을 알고있는 경우,하지만 저는 그렇게 할 수 없었습니다. 따라서 반복되는 하위 선택입니다. 인수 중 하나가 NULL 이면 concat도 NULL 을 반환하므로 if 문이됩니다.)

select (concat(if((select 
                       concat(if(b.foo is not null, b.foo, ""), 
                       " ", 
                       if(f.bar is not null, f.bar, ""))
                     from  `foo_table`  as f
                      left join `bar_table` as b
                        on b.SOME_ID = f.SOME_ID
                     where f.STUDENT_ID = t.STUDENT_ID
                       and bar.NewID = t.OldID order by bar.id limit 1) is not null,
                   (select 
                      concat(if(b.foo is not null, b.foo, ""), 
                       " ", 
                       if(f.bar is not null, f.bar, ""))
                     from  `foo_table`  as f
                      left join `bar_table` as b
                        on b.SOME_ID = f.SOME_ID
                     where f.STUDENT_ID = t.STUDENT_ID
                       and bar.NewID = t.OldID order by bar.id limit 1),
                   ""),
       " ",
       t.reason) as Reason
   from table as t

 

해결 방법

 

그리고 concat ( 사이에 공백이 없는지 확인하십시오.

SELECT CONCAT ('a', 'b');

 

참조 페이지 https://stackoverflow.com/questions/4148149

 

 

반응형

댓글