PHP ver gevorderde |
|
Ik probeer een resultaat op te halen waarvan het verschil tussen de huidige datum en het datumveld het kleinst is.
Daar had ik deze query voor gemaakt:
SELECT flyer, showdate FROM shows WHERE MIN(DATEDIFF(CURRENT_DATE(), showdate)) AND showdate>CURRENT_DATE() LIMIT 1
SELECT flyer , showdate FROM shows WHERE MIN(DATEDIFF (CURRENT_DATE (), showdate )) AND showdate >CURRENT_DATE () LIMIT 1
Die werkte niet, ik kreeg van MySQL een error terug:
Invalid use of group function
Toen had ik om te proberen de query herschreven naar dit:
SELECT flyer, showdate, DATEDIFF(CURRENT_DATE(), showdate) AS next_show FROM shows WHERE MIN(next_show) AND showdate>CURRENT_DATE() LIMIT 1
SELECT flyer , showdate , DATEDIFF (CURRENT_DATE (), showdate ) AS next_show FROM shows WHERE MIN(next_show ) AND showdate >CURRENT_DATE () LIMIT 1
Ook dat werkt niet, ik krijg nog steeds Invalid use of group function.
Wat zoeken via Google heeft me niets opgeleverd, alle antwoorden die daar gegeven worden hebben betrekking op een query met een GROUP BY-argument.
Ik moet de rij hebben waarbij het datumverschil tussen de huidige datum en het datumveld (showdate) het kleinst is, maar de datum van het datumveld wel in de toekomst ligt. Hoe kan ik dat wel doen in MySQL? Ik kan het namelijk ook via PHP doen, maar dat wordt zo omslachtig. Via MySQL moet het ook kunnen.
|