複雑な連結を含むクエリがあります。結果がnullでない場合、いくつかのサブ選択の結果を連結するという行に沿ったものです。MySQL 5.1 を実行する開発サーバーと 5.0 レポートを実行する実稼働サーバーでは問題なく動作します (ただし、その複雑さには少しうんざりします)。
FUNCTION database.concat does not exist
なぜこれが考えられるのでしょうか?残念ながら、アップグレードは現時点ではオプションではないため、誰かが優れたアイデアを持っていない限り、このレポートを書き直すことはほとんどありません。
クエリは次のとおりです (はい、私は mysql をひどく悪用していることに気付きました。今はそれを脇に置きましょう。便利な別名でサブセレクトを参照する方法を誰かが知っていれば、しかし私はできませんでした)また、concat はNULL
引数のいずれかがNULL
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