Mysql Concat in concat

Hallo wie kann man ein mysql concat in einen mysql concat abrufen?
Hier ist eine Lösungsbeispiel welches bei mir nicht funktioniert.
=> das Ergebnis schreibt mir den Hyperlink und macht den Hyperlink nicht klickbar.

SET @exportfile =
CONCAT(„SELECT ‚ID‘
UNION ALL
SELECT CONCAT(’=HYPERLINK(“’, ID,’")’) FROM table
INTO OUTFILE ‚C:/File.xls‘ fields TERMINATED BY ‚\t‘ lines TERMINATED BY ‚\n‘");

Hallo!

Dein Problem ist, dass du versuchst, eine Excel-Tabelle so zu erzeugen, wie du sie auch eintippen würdest - aber du schreibst ne einfache Text-Datei, weil sql das nicht anders kann.
Excel erkennt, dass das keine echte Excel-Datei, sondern ne Text-Datei ist, und versucht deren Inhalt irgendwie zu interpretieren. Dabei werden die Links offensichtlich nicht in klickbare Links umgewandelt.

(angesehen davon habe ich grade große Probleme zu verstehen, was du da überhaupt versuchst)

Danke Sweber, ich hätte url statt ID im Bsp verwenden sollen.
Dann wäre das Bsp besser gewesen.

Die generierte Excel Tabelle soll Links erstellen, die schon nach dem öffnen der Datei per Klick anstatt copy paste im Browser öffnen.
Ohne dem ersten Concat funktioniert es super.
Wenn man aber ein Concat in einen Concate verwendet verschwinden die Links.

OK, verstehe.
Kannst du mal dein erstes, funktionierende Beispiel zeigen, und nochmal prüfen, ob das, was du gezeigt hast, wirklich 1:1 hier steht? Setze dabei dene Beispiele in zwei [code][/code]-tags, damit die Software hier nicht meint, irgendwas von deiner Eingabe interpretieren zu müssen. Denn irgendwas ist da merkwürdig, u.a. mit den Anführungszeichen unten:

SET @exportfile =
CONCAT(„SELECT ‚ID‘
UNION ALL
SELECT CONCAT(’=HYPERLINK(“’, ID,’")’) FROM `table`
INTO OUTFILE ‚C:/File.xls‘ fields TERMINATED BY ‚\t‘ lines TERMINATED BY ‚\n‘");

Ansonsten wäre mein nächster Schritt, mal die erzeugten Ausgabedateien mit nem Editor zu öffnen. Ggf. siehst du dann schon, was da schief läuft.

Also folgende Version würde klappen. Allerdings brauch ich diese Version in Concat, da ich einen Zeitstempel zum erstellten File hinzufüge.

SELECT ‚url‘
UNION ALL
SELECT CONCAT(’=HYPERLINK("’, url,’")’) FROM table WHERE status =‚r‘
INTO OUTFILE ‚C:/file.xls‘ fields TERMINATED BY ‚\t‘ lines TERMINATED BY ‚\n‘;

Diese komplizierte Version wird benötigt.
Leider funktioniert die Version nicht:

SET @exportfile = CONCAT(SELECT 'url' UNION ALL SELECT CONCAT('=HYPERLINK("', url,'")') FROM table WHERE status ='r' INTO OUTFILE 'C:/file", REPLACE(NOW(),':','-') , ".xls' fields TERMINATED BY '\t' lines TERMINATED BY '\n');

PREPARE processing FROM @exportfile;
EXECUTE processing;
DROP PREPARE processing;

Gibt es Ideen dazu wie es funktionieren könnte?

Im Editor sieht der generierte Excel Code so aus:
=HYPERLINK(, url,)

Es sollte aber so aussehen:
=HYPERLINK(„http://www…“)
=> kurz gesagt die url wird nicht ausgelesen von der mysql Datenbank

Vielleicht kopierst du einfach mal den Code so herein, dass er auch so angezeigt wird, wie bei dir. So etwas:

CONCAT(SELECT 'url'...

kann z.B. niemals funktionieren. Da fehlt wahrscheinlich ein Anführungszeichen nach der öffnenden Klammer.

Ich frage mich auch, warum du das ganze SELECT-Statement in eine Variable schreibst. Mit den ganzen Strings und Concats kommst du da natürlich ins Schleudern.

Wahrscheinlich sieht dein SELECT-Statement so aus, dass die Zeichenreihe „url“ in die Ausgabe eingefügt wird und nicht der Inhalt der Spalte url.

Ich bin auf den Fehler gekommen, man musste die Anführungszeichen im inneren Concat auskommentieren \ "
=> so hat es funktioniert

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.