Marvin Esse: Problem mit MySQL-Abfrage

Beitrag lesen

Hallo,

ich brauche mal Eure Hilfe wie ich eine bestimmte Abfrage auf eine Tabelle lösen kann:

Die Tabelle hat drei Felder "jahr", "monat" und "dauer", sowie weitere Felder, die aber für das Problem nicht relevant sind. Die Felder sind vom Typ "VARCHAR", was die Sache womöglich noch etwas erschwert. "dauer" gibt die Anzahl in Monaten an.

Die Abfrage soll jetzt alle Einträge finden, die innerhalb eines vorgegebenen Zeitraums liegen.

Das klappt soweit mit dem folgenden Select: (In $beginn und $ende steht dann sowas wie "2016-02" bzw. "2018-05")

select * from tabelle where concat_ws('-',jahr,monat) >= '$beginn' AND concat_ws('-',jahr,monat) <= '$ende'"

Meinm Problem ist, ich möchte aber auch die Einträge finden, die sich überschneiden, also wo zwar Jahr und Monat vor dem Bereich liegen, aber durch die Dauer in den Bereich hineinragen. Also soll die Abfrage auch den Eintrag jahr=2015, monat=11, dauer=6 finden.

Wie müsste der Select aussehen?

LG Marvin