例如有语句:select * from table_name where expr1>expr2 and expr1>expr3;
其中,expr2 与expr3没有关系.我的问题是,由于expr1的计算过程比较复杂,算起来比较费时间.象上面的那种写法对expr1做了两次计算.这样比较浪费时间.请问有什么办法或者函数能实现以上功能,但是只对expr1做一次计算的呢?
其中,expr2 与expr3没有关系.我的问题是,由于expr1的计算过程比较复杂,算起来比较费时间.象上面的那种写法对expr1做了两次计算.这样比较浪费时间.请问有什么办法或者函数能实现以上功能,但是只对expr1做一次计算的呢?
select * from table_name where expr1 > expr2;
如果 expr2 < expr3;
select * from table_name where expr1 > expr3;
换成:
where expr1 > if(expr2>expr3,expr2,expr3);这样应该可以了。