У меня есть три столбца: столбец даты, целочисленный столбец и столбец varchar следующим образом:
+------------+------+---------+
| date |value | unit |
+------------+------+---------+
| 2009-01-01 | 2 | DAY |
| 2009-02-01 | 3 | MONTH |
+------------+------+---------+
Я хочу использовать значения целого числа и столбца varchar в функции mysql date_add() как часть выражения "INTVERAL", добавленного к дате в столбце "дата".
Например: date_add (2009-01-01, INTERVAL 2 ДЕНЬ), так что '2009-01-01' - это дата ' столбец, "2" находится из столбца "значение" /целочисленный, а "ДЕНЬ" - из столбца "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
но , как только я попытаюсь заменить ключевое слово "ДЕНЬ" на строковое значение из столбца, я получаю сообщение об ошибке.
Любые идеи?
Я думаю, что в общем случае проблема такова:
Как использовать динамически полученные значения в качестве констант/выражений ключа? Есть ли какая-то функция eval в mysql?
Эта проблема давно искала меня, любая помощь была бы действительно большой.
Бит