私はmysqlで次のクエリを持っています:
INSERT INTO table_name(field1, field2, field3, field4......)
SELECT field1, field2,
function_name(field3,'2012-01-01'),
function_name(field3,'2012-01-01')/field1.....
from table_name2 group by field1, field2;
私の質問は、上記のクエリは正常に機能していますが、 function_name(field3,'2012-01-01') を複数回使用しているため、実行に時間がかかりすぎるということです。ここで、function_name(field3,'2012-01-01') を 1 回実行し、field3 と field4 に使用します。field4 の function_name を再度呼び出すことはありません。既にフィールド fields3 に対して実行したためです。
したがって、クエリは次のようになります
INSERT INTO table_name(field1, field2, field3,field4......)
SELECT field1, field2,
@res:=function_name(field3,'2012-01-01'),
@res/field1.....
from table_name2
group by field1, field2;
出来ますか?