Как использовать значение строки / столбца в качестве постоянной интервала даты 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?
Эта проблема беспокоила меня долгое время, любая помощь была бы очень полезна.
бить