MySQL 5.0 reporting "concat ist nicht vorhanden"

Habe ich eine Abfrage mit einer komplexen Verkettung in es. Es ist etwas entlang der Linien von der Verknüpfung der Ergebnisse der verschiedenen sub-wählt, wenn die Ergebnisse nicht null sind. Es funktioniert gut (obwohl die Komplexität macht mich ein wenig krank), die auf unserem Entwicklungs-server läuft MySQL 5.1, aber unsere Produktions-server, die ausgeführt wird, 5.0 Berichte

FUNCTION database.concat does not exist

Irgendwelche Ideen, warum das sein könnte? Ein Upgrade ist leider nicht möglich, an dieser Stelle so, es sei denn, jemand hat eine gute Idee, ich bin ziemlich viel stecken Umschreibung in diesem Bericht.

Abfrage ist wie folgt (ja, ich weiß, ich bin schrecklich zu missbrauchen, mysql. Legen wir das beiseite für jetzt. Wenn jemand weiß, wie, einen Weg zu finden, um zu einer untergeordneten select-Anweisung, die von alias, die nützlich sein würde, aber ich habe nie in der Lage, es zu tun, daher die wiederholte Anweisung ausgewertet. Auch die concat gibt NULL wenn die Argumente sind NULL, daher die if-Anweisungen.)

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 oder concat?
  • Wir können nicht vor Ort Tippfehler, etc ohne ein snippet. Concat sollte es sein und nehmen Sie nur zwei Argumente.
  • William concat kann eine beliebige Anzahl Argumente nach dev.mysql.com/doc/refman/5.0/en/...
  • Könntest du bitte posten Sie die Abfrage und die genaue Fehlermeldung?
  • yep, du hast Recht. Mein Fehler. Quassinoi fing mich zu
  • Das wird nicht wirklich helfen, es sei denn, Sie buchen die gesamte Abfrage.
  • Tatsächlich... ich habe gerade gelesen das ganze Eintrag von concat_ws und ich finde es stark vereinfachen diese Abfrage...
  • Danke für die Hilfe alle!
  • Dies ist eine schreckliche Verwendung von korrelierten Unterabfragen, die durch die Art und Weise.
  • Ja, ja, es ist. Siehe meine Antwort für eine viel sauberere version.

InformationsquelleAutor baudtack | 2010-11-10
Schreibe einen Kommentar