Как использовать значение строки / столбца в качестве постоянной интервала даты mysql (ДЕНЬ, МЕСЯЦ…)?

У меня есть три столбца: столбец даты, целочисленный столбец и столбец varchar, как это:

+------------+------+---------+
| date       |value |  unit   |
+------------+------+---------+
| 2009-01-01 |    2 | DAY     | 
| 2009-02-01 |    3 | MONTH   | 
+------------+------+---------+

Я хочу использовать значения целого числа и столбца varchar в функции mysql date_add () как часть выражения «INTVERAL», добавляемого к дате в столбце «date».

Например: date_add (2009-01-01ИНТЕРВАЛ2 ДЕНЬ), так что «2009-01-01» из столбца «date», «2» из столбца «value» / integer и «DAY» из столбца «unit» / varchar.

И выбор будет выглядеть так:

select date_add(table.date_column, INTERVAL table.integer_column table.varchar_column) from table

Проблема в том, что это не работает. Дата и целочисленный столбец работают, так что все в порядке:

 select date_add(table.date_column, INTERVAL table.integer_column DAY) from table

нокак только я пытаюсь заменить ключевое слово «ДЕНЬ» строковым значением из столбца, я получаю сообщение об ошибке.

Есть идеи?

Я предполагаю, что в более общем плане проблема заключается в следующем:

Как использовать динамически извлекаемые значения в качестве констант / ключевых выражений? Есть ли в mysql своего рода функция eval?

Эта проблема беспокоила меня долгое время, любая помощь была бы очень полезна.

бить

Ответы на вопрос(3)

Ваш ответ на вопрос