Doctrine-Querybuilder ORDER BY-Klausel in SELECT-Liste
Ich habe den folgenden query builder:
$queryBuilder = $this
->createQueryBuilder('recipient')
->leftJoin('recipient.message', 'message')
->orderBy('message.dateSent', 'DESC');
Diesem wurde gut funktioniert 🙂 - aber seit der Umstellung auf Mysql 5.7
ich angefangen habe, immer diese Fehlermeldung überall:
SQLSTATE[HY000]:
Allgemeine Fehler: 3065
Ausdruck #1 vonORDER BY
Klausel ist nichtSELECT
Liste, Verweise Spalte'dctrn_result.date_sent_5'
die nicht inSELECT
Liste;
dies ist unvereinbar mit derDISTINCT
Ich habe das Problem gelöst in den meisten Orten, wo ich bin mit dem DBAL
Schicht von nur ein Eintrag in der select-Liste, aber ich kann nicht herausfinden, wie zu tun, dass mit diesem queryBuilder
.
Eine Lösung habe ich gefunden und auch für mich gearbeitet ist beschrieben hier
InformationsquelleAutor Desi Cochrane | 2016-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Bearbeiten die
/etc/mysql/mysql.cnf
durch hinzufügen der folgenden Zeilen:Vergessen Sie nicht, starten Sie den Dienst mysql:
Zur info, ich bin mit Ubuntu 16.04 LTS.
Das hat funktioniert.. Aber warum?
InformationsquelleAutor Amine Jallouli
Hinzufügen:
zu
/etc/mysql/my.cnf
behoben das problem für mich (nach Neustart des service). Obwohl natürlich eine offizielle Reaktion auf die Doktrin Problem wäre schöner.Update: Jemand, der weiß mehr als ich über dieses nur zu empfehlen das deaktivieren des Modus, der das problem hervorruft.
Sie meinen Tag gerettet, danke!
InformationsquelleAutor mickadoo
Gibt es einen bug gemeldet, in #4846 und es scheint verwandt zu sein #sqlmode_only_full_group_by und es gibt einige Beispiele auf, was bedeutet es hier. Bis ein richtiges Update kommt eine Lösung wäre hinzuzufügen
->addSelect('message')
auf die Abfrage (ich weiß nicht, ob es das Problem behebt, oder die Lehre schreibt die Abfrage sowieso), aber, die Weise Lehre wird Hydrat Massagen als auch welche, die vielleicht nicht erwünscht oder deaktivieren der sql-Modus ONLY_FULL_GROUP_BY, aber dann, mysql vielleicht können ungültige Daten.InformationsquelleAutor 1ed
Eigentlich mysql 5.7 enthält " ONLY_FULL_GROUP_BY' im sql-Modus.So können wir nicht durchführen orderby in dem element, das nicht in select-Liste.wir haben, um es zu ändern aus
in
Können wir dies durch ausführen der folgenden Abfragen
Dank,
Suriya
InformationsquelleAutor Suriya Kumar
Bei der Verwendung
QueryBuilder
, die verknüpften Tabellen nicht Hinzugefügt, um die select-Liste automatisch. Sie können rufen SieaddSelect(TABLE_ALIAS)
um loszuwerden des Fehlers.InformationsquelleAutor Fracsi