Malheureusement, MySQL attend un mot-clé après INTERVAL et non une chaîne ou une valeur numérique. Vous pouvez obtenir ce que vous voulez en utilisant une instruction CASE et donner les différents cas avec les différents mots-clés.
Par exemple, supposons que vous souhaitiez ajouter la valeur avec l'unité appropriée à la date, l'instruction SQL serait la suivante :
SELECT CASE unit
WHEN "DAY" THEN date_add(date, INTERVAL value DAY)
WHEN "MONTH" THEN date_add(date, INTERVAL value MONTH)
END
AS newDate
FROM table
Fonctionne également dans la clause WHERE d'ailleurs :)