Das HAVING
-Klausel soll für aggregierte Daten verwendet werden, wenn Sie Zeilen mit GROUP BY
zusammengruppieren Klausel. Da Sie jede Zeile einzeln bearbeiten, sollten Sie HAVING
ersetzen mit einem WHERE
Klausel. Siehe dieses Beispiel
für Details.
Die Verwendung von HAVING für nicht aggregierte Spalten in Ihrer SELECT-Liste ist ein nicht standardmäßiges Verhalten, das MySQL unterstützt, aber ein Verhalten, auf das Sie sich nicht verlassen sollten. Sogar die MySQL-Referenz rät davon ab:
Übrigens:Wenn Sie Argumente des Benutzers an Ihre Abfrage übergeben (mit dem %s
), stellen Sie sicher, dass Sie sich vorbereitete Anweisungen ansehen. Andernfalls könnten Sie eine eklatante Sicherheitslücke an Ihren Händen haben.