Hi Forum,
ich kämpfe mit der Umsetzung eines SQL Query unter 4.9. Ich hole mir in einem Frontendtemplate, Daten direkt aus der DB. Ich habe aus einem anderen Query ein Array mit IDs erhalten und benutze dieses Array nun um zu prüfen ob kompatible Modell in der Tabelle drin stehen.
Ich verwende diese "doctrine syntax" und die Abfrage funktioniert hervorragend:
HTML-Code:
$statement = $db->executeQuery('SELECT * FROM tbl_models where publish = 1 AND id IN (?) order by name',
array($models),
array(\Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
);
Soweit so gut. Nun das Problem. Das genannte Array enthält alle kompatiblen Modelle. Ich habe nun ein zweites Array, welches die IDs der zertifizierten Modelle enthält.
Im Ergebnis brauche ich eine Ausgabe, die mir die zertifizierten Modelle zuerst auflistet und entsprechend kennzeichnet.
Mein SQL Query ist rel klar und funktioniert auch wunderbar:
Code:
SELECT name, if(id IN(1,8,26), 'certified', '') as certified FROM tbl_models WHERE id IN(1,2,3,8,10,11,12,15,19,23,24,26,27,28,29) ORDER BY certified desc, NAME
So ein Query bekomme ich nicht für die Doctrine Syntax "übersetzt". Es scheitert auch schon daran, dass ich die notwendigen Anführungszeichen für einen Wert in einer neuen, virtuellen Spalte, irgendwie nicht escaped bekomme. Selbst eine einfache Konstante ohne Bedingung nach dem Muster
Code:
SELECT name, 'ja' AS certified FROM ...
, scheitert.
Kann man überhaupt "eigene Spalten" in Doctrine verwenden und wenn ja, wie?
Hätte jemand eine Idee, wie die Syntax für mein Beispiel aussehen müsste?
DANKE schon mal im Voraus!
Lesezeichen