Ich frage mich, ob es möglich ist, die Abfrage abhängig von einem variablen Wert auf elegante Weise zu verkürzen.
Zum Beispiel: Ich habe den Wert $var = 0
und ich möchte eine Abfrage senden, die wie folgt aussieht:
Aber mit der $ var! = 1 möchte ich eine Abfrage wie folgt senden:
%Vor%Also abhängig vom Wert von $ var möchte ich eine der Abfragen ausführen. Sie unterscheiden sich nur vom letzten Ausdruck. Ich fand zwei mögliche Lösungen, aber sie sind nicht elegant und ich mag sie überhaupt nicht.
Eins wird in php gemacht:
%Vor%Zweitens wird in mysql gemacht:
%Vor%aber ich mag es nicht - jede Idee verdoppelt Abfragen in einigen Fällen. Kann ich so etwas tun?
%Vor%Es ist viel kürzer und fügt bei Bedarf einen Teil der Abfrage hinzu. Natürlich ist echte Abfrage viel komplizierter und eine kürzere Anweisung wäre wirklich zu erwarten. Jeder hat eine Idee?
Ich bin kein PHP-Entwickler (es ist PHP, richtig?), aber wäre es nicht einfach, Ihre Abfrage aus einer verketteten Zeichenfolge zu erstellen?
Pseudocode:
%Vor%Sie können dies tun:
%Vor% Wenn nur die erste Bedingung ausgeführt werden soll, übergeben Sie $q = 100
und $var = NULL
. Daher wird die zweite Bedingung ignoriert. Und für die zweite Abfrage übergeben Sie die $q = 100
und $var = id value
und Sie erhalten die zweite Abfrage.
Wenn sie sich nur in zusätzlichen where-Anweisungen unterscheiden, würde ich wahrscheinlich immer noch in PHP bleiben und folgendes tun:
%Vor%/ Carsten
Also wenn du das
benutztWenn oder der CASE
Warum verwenden Sie sie nicht in Ihrer SQL-Abfrage? Es wäre etwas wie
%Vor%Aber in Ihrer SQL-Abfrage.
%Vor%Ich denke, das wird dein Problem lösen. Aber als persönliche Beratung versuchen Sie eine Abfrage zu machen. Auch mit der Variable. Wir glauben nicht daran, die Standardabfrage in Abhängigkeit von den Bedingungen zu ändern.
Noch immer dein Wunsch und dein Wunsch
Prost !!
Für dieses spezielle Problem, gehen Sie mit dem einfachen Zustand der Papierfledermaus Append Snippet.
Wenn Sie jedoch völlig unterschiedliche where-Anweisungen haben, sollten Sie die entsprechende where-Anweisung an die Abfrage anhängen, sobald Sie wissen, was Sie wollen. Zum Beispiel,
%Vor%Es hängt alles von Ihren Bedürfnissen ab, aber weder diese noch die Lösungen von Paper-bat kopieren den Abfragecode.