Thanks a lot buddy! I've also found this workaround. Not so handy, but ok.
SELECT
CASE SUBSTRING_INDEX(ripetizione, ' ', -1)
WHEN 'DAY' THEN DATE_ADD(FROM_UNIXTIME(data_start), INTERVAL SUBSTRING_INDEX(ripetizione, ' ', 1) DAY)
WHEN 'WEEK' THEN DATE_ADD(FROM_UNIXTIME(data_start), INTERVAL SUBSTRING_INDEX(ripetizione, ' ', 1) WEEK)
WHEN 'MONTH' THEN DATE_ADD(FROM_UNIXTIME(data_start), INTERVAL SUBSTRING_INDEX(ripetizione, ' ', 1) MONTH)
WHEN 'YEAR' THEN DATE_ADD(FROM_UNIXTIME(data_start), INTERVAL SUBSTRING_INDEX(ripetizione, ' ', 1) YEAR)
ELSE NULL
END
AS next_date FROM `table` WHERE id=1
*notes*
data_start = field with date, stored as unix_timestamp
ripetizione = field with interval (may be stored as 1 DAY, 3 MONTH, 5 YEAR, etc)
hope this help!
