MySQL - Verketten von Strings im SELECT WENN NICHT LEER?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Du könntest doppelte Kommas hinterher mit replace() ersetzen. Aber ich würde es an deiner Stelle doch lieber anders machen. Wenn du die Spalten einzeln lässt, kannst du sie mit php doch relativ leicht zusammenfügen.

$result = mysql_query("SELECT `wp.bild1`,`wp.bild2`,...

while($arr = mysql_fetch_array()){

$string = "";
if ($arr["bild1"]) $string .= $arr["bild1"].",";
if ($arr["bild2"]) §string .= $arr["bild2"].",";
[...]

echo $string;
}

So kannst du mit den Werten auch direkt andere Dinge anfangen.

Ich würde es jedenfalls so oder ähnlich machen.




Plueschtier94 
Beitragsersteller
 05.09.2016, 12:06

Danke für deine Antwort.
Ich durchlaufe allerdings knapp 60.000 Artikel auf diese Weise, und möchte es natürlich so performant machen wie es nur geht.

In den Tests mit der MySQL Workbench macht es kaum einen zeitlichen Unterschied, wenn ich mir die Strings da anfügen lasse. 
Über PHP, wird es allerdings was unperformanter. 

Deswegen suche ich eigentlich diesen Umweg. 

0

was du machen willst erreichst du mit IF

SELECT IF(1<2,'yes','no');

würd ich allerdings nicht so machen.

ich würde mir genau DAS ausgeben lassen, was auch die DB hergibt.. was du mit der query errichen willst würd ich mit der php-verarbeitung machen.. vorteil ist dabei, dass du - wenn du mal debuggen willst - es einfach hast den die fehlerquelle abzugrenzen