Hallo mal wieder Zusammen!
Ich versuche gerade eine SELECT Abfrage so zu bauen, dass ich einige IF Anweisungen in meinen Routinen sparen kann, stosse aber auf Probleme bei mehreren Werten.
Folgendes habe ich:
Ich benutze die Variable $spalte1 bereits aus tabelle1, gefüllt mit Werten. Jetzt will ich in einer anderen Tabelle nachsehen, ob nicht eine Aktualisierung von $spalte1 enthalten ist. (Daher ist die Bezeichnung in der tabelle2 gleich, um die Variable bei der Zuordnung gleich überschreiben zu können) Ist dort der Inhalt leer, so soll eben der alte Inhalt weiter in der Variablen bleiben. Irgendwann im Script kommt dann also die Abfrage:
PHP-Code:
...
$s_sql = "SELECT spalte1 FROM tabelle2 WHERE spalte1<>'' AND quell_id=".$id;
$lang_result = mysql_query($s_sql);
...
Diese Abfrage wirft mir also nur einen neuen Wert für Spalte raus (natürlich muss ich den noch mit mysql_fetch_array oder ähnlichem der Variablen zuordnnen, klar), wenn in spalte1 eben überhaupt etwas drin ist, deswegen ja die zusätzliche Abfrage ...spalte1<>''... im Query.
So weit so gut, aber jetzt habe ich ein anderes Script, das will mehrere Spalten auslesen. Dabei soll auch wieder nur die Spalte gelesen werden, die überhaupt etwas enthält, also deren String nicht leer ist. Alle anderen sollen in diesem Fall gar nicht erst aus der DB gelesen werden, es käme ja nur etwas leeres raus:
PHP-Code:
...
$s_sql = "SELECT spalte1, spalte2, spalte3 FROM tabelle2
WHERE spalte1<>'' AND spalte2<>'' AND spalte3<>'' AND quell_id=".$id;
$lang_result = mysql_query($s_sql);
...
Diese Abfrage bringt mich ja nicht weiter, da dann alle Spalten etwas enthalten müssen, nicht nur einige davon.
Wie mache ich das nun? Der OR Befehl geht da natürlich auch nicht, der würde alle auslesen wenn nur eine Spalte gefüllt ist, die Bedingung müsste wohl schon in der Spaltenauswahl liegen oder?
Also so etwas wie
PHP-Code:
$s_sql = "SELECT (Spalte1 if <>''), (Spalte2 if <>'') FROM tabelle2 ...";
If weiß, sieht schei.. aus, ist so bestimmt vollkommener Mist, aber könnte mir mit der Notation da jemand helfen?
Vielen lieben Dank im Voraus, Gruß
Skyman