bau*_*ack 2 mysql sql select concat function
我有一个复杂串联的查询.如果结果不为空,那么就像连接几个子选择的结果一样.它在我们的运行MySQL 5.1的开发服务器上工作正常(虽然复杂性让我有点不舒服)但我们的生产服务器运行5.0报告
FUNCTION database.concat does not exist
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样?不幸的是,升级不是一个选择,所以除非有人有一个好主意,否则我几乎不会重写这份报告.
查询如下(是的,我意识到我可怕地滥用mysql.让我们暂时把它放在一边.如果有人知道如何通过别名引用子选择方法,这将是方便的,但我从来没有能够做到它,因此重复的subselect.NULL如果有任何参数NULL,concat返回,因此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
Run Code Online (Sandbox Code Playgroud)
rMX*_*rMX 16
并确保,concat和之间没有空格(.像这样的东西:
SELECT CONCAT ('a', 'b');
Run Code Online (Sandbox Code Playgroud)
CONCAT可在5.0.
确保你没有打错字:
SELECT CONTACT(id, name)
FROM items;
Error Code: 1305
FUNCTION test.CONTACT does not exist
Run Code Online (Sandbox Code Playgroud)