SELECT *
FROM (
SELECT dj, 'date1' whichdate, if (date1 >= now(), date1, null) nextdate
union
SELECT dj, 'date2' whichdate, if (date2 >= now(), date2, null) nextdate
union
SELECT dj, 'date3' whichdate, if (date3 >= now(), date3, null) nextdate
union
SELECT dj, 'date4' whichdate, if (date4 >= now(), date4, null) nextdate
union
SELECT dj, 'date5' whichdate, if (date5 >= now(), date5, null) nextdate
union
SELECT dj, 'date6' whichdate, if (date6 >= now(), date6, null) nextdate
union
SELECT dj, 'date7' whichdate, if (date7 >= now(), date7, null) nextdate
union
SELECT dj, 'date8' whichdate, if (date8 >= now(), date8, null) nextdate
union
SELECT dj, 'date9' whichdate, if (date9 >= now(), date9, null) nextdate
union
SELECT dj, 'date10' whichdate, if (date10 >= now(), date10, null) nextdate
union
SELECT dj, 'date11' whichdate, if (date11 >= now(), date11, null) nextdate
union
SELECT dj, 'date12' whichdate, if (date12 >= now(), date12, null) nextdate
)
WHERE nextdate IS NOT NULL
ORDER BY dj, nextdate