SELECT * FROM entries WHERE (num_repeat = -1) OR (num_repeat =0 AND date_end >= '2006-09-29') OR (num_repeat > 0 AND skip_days > 0 AND '2006-09-29' - INTERVAL skip_days - 1 DAY < date_begin) OR (num_repeat > 0 AND skip_days = 0 AND '2006-09-29' - INTERVAL skip_months - 1 MONTH < date_begin)