MySQL 5.0报告"concat不存在"

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)

  • 有时候MySql会让我说出什么是FOO! (2认同)

Qua*_*noi 5

CONCAT可在5.0.

确保你没有打错字:

SELECT  CONTACT(id, name)
FROM    items;

Error Code: 1305
FUNCTION test.CONTACT does not exist
Run Code Online (Sandbox Code Playgroud)