Rouven: MySQL wildcards / HAVING

Beitrag lesen

Hi,

ich habe weniger was zu deinem konkreten Problem als mehr zu deiner generellen Abfrage anzumerken.

SELECT SUM(Spalte),* GROUP BY xy HAVING a LIKE "%teilstring%"

Das ist eine - streng nach SQL-Standard - verbotene GROUP-BY-Abfrage, die dir MySQL zwar durchgehen lässt, bei der du aber früher oder später auch bei neueren MySQL-Versionen auf Probleme stoßen könntest.
Die Grundregel für SELECT+GROUP BY lautet eigentlich: Es dürfen nur solche Spalten abgefragt werden nach denen gruppiert wurde bzw. die durch eine Aggregat-Funktion (z.B. SUM, MAX, COUNT) entstanden sind.
In deinem Fall sind demnach nur SUM(spalte) und xy zulässig, eine Spalte a dürfte eigentlich nach der Gruppierung gar nicht mehr existieren. Es kann auch gut sein, dass genau da die Toleranz von MySQL aufhört und du deswegen nicht das gewünschte Ergebnis bekommst.

MfG
Rouven

--
-------------------
Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#