반응형
복잡한 연결이있는 쿼리가 있습니다. 결과가 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
반응형
'MySql' 카테고리의 다른 글
MySQL 추가 된 문자열 CONCAT가있는 필드의 모든 값을 SQL UPDATE가 작동하지 않습니다. (0) | 2020.10.30 |
---|---|
MySQL의 서버 이름을 찾는 방법 (0) | 2020.10.30 |
MySQL HTML 양식에서 SQL 테이블에 데이터 삽입 (0) | 2020.10.30 |
MySQL Firebase vs MySQL database (hierarchical/relational) (0) | 2020.10.30 |
MySQL 조인을 사용하여 하나의 테이블에서 삭제 (0) | 2020.10.30 |
댓글