У меня есть сценарий, где я вычисляю что-то в предложении WHERE
моего SQL, но я также хочу получить этот расчет - так как это дорого. Можно ли получить результаты что-то сделано в пункте WHERE
, как это:Возможно ли захватить данные из предложения WHERE?
SELECT `foo` FROM `table` WHERE (foo = LongCalculation(`column`))
выдавать желаемое за действительное, или возможно с MySQL?
EDIT: Расчета по столбцам зависят
Если вы имеете получил 1000 строк, а LongCalculation будет работать с 1000 различными входами, тогда нет решения. Но если количество разных значений намного меньше 1000, то вы можете использовать промежуточное хранилище кеша внутри LongCalculation, которое, конечно же, должно быть хранимой процедурой. Не знаю, можно ли сохранить значения переменных между вызовами хранимых процедур. – cherouvim
Возможно, вы можете использовать временную таблицу для хранения вычисленных выходов для определенных входных данных. – cherouvim
См. Мой ответ, как я решил это. Я не пытался избежать вычисления каждой строки, всего несколько раз для каждой строки. –