J'ai une requête avec une concaténation complexe en elle. C'est quelque chose dans le sens de la concaténation des résultats de plusieurs sous-sélections si les résultats ne sont pas nuls. Il fonctionne très bien (bien que la complexité me fait un peu malade) sur notre serveur de développement qui fonctionne MySQL 5.1 mais notre serveur de production, qui gère 5,0 rapportsMySQL 5.0 rapport "concat n'existe pas"
FUNCTION database.concat does not exist
Toute idée pourquoi cela pourrait être? La mise à niveau n'est malheureusement pas une option à ce stade, donc à moins que quelqu'un ait une bonne idée, je suis à peu près coincé en train de réécrire ce rapport. La requête est la suivante (Oui, je me rends compte que j'utilise horriblement mysql.) Mettons cela de côté pour l'instant Si quelqu'un sait comment faire pour se référer à un sous-ensemble par alias qui serait pratique, mais je n'ai jamais été en mesure de le faire, d'où la sous-requête répétée. retourne également concaténer NULL
si l'un des arguments sont NULL
, d'où l'instruction 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
'contact' ou' concat'? – Quassnoi
Nous ne pouvons pas détecter les fautes de frappe, etc. sans un extrait. Concat devrait être là et ne prendre que deux arguments. –
@Matt William concat peut prendre un nombre arbitraire arguments selon http://dev.mysql.com/doc/refman/5.0/fr/string-functions.html#function_concat – baudtack