У меня есть простая таблица, где я должен извлечь некоторые записи. Проблема в том, что функция оценки - это очень трудоемкая хранимая процедура, поэтому я не должен вызывать ее дважды, как в этом предложении:
SELECT *, slow_sp(row) FROM table WHERE slow_sp(row)>0 ORDER BY dist DESC LIMIT 10
Сначала я подумал об оптимизации следующим образом:
SELECT *, slow_sp(row) AS value FROM table WHERE value>0 ORDER BY dist DESC LIMIT 10
Но это не работает, поскольку "значение" не обрабатывается при вычислении предложения WHERE.
Есть идеи, чтобы оптимизировать это предложение? Спасибо.