Rap*_*ger 24 mysql performance
因为你不能在MySQL的where子句中使用计算列,如下所示:
SELECT a,b,c,(a*b+c) AS d FROM table
WHERE d > n
ORDER by d
Run Code Online (Sandbox Code Playgroud)
你必须使用
SELECT a,b,c,(a*b+c) AS d FROM table
WHERE (a*b+c) > n
ORDER by d
Run Code Online (Sandbox Code Playgroud)
是计算(在那个例子中"(a*b + c)"每行执行一次还是两次?有没有办法让它更快?我觉得很奇怪,可以在列上进行ORDER而不是有一个WHERE-条款.
Bar*_*mar 51
您可以使用HAVING过滤计算列:
SELECT a,b,c,(a*b+c) AS d, n FROM table
HAVING d > n
ORDER by d
Run Code Online (Sandbox Code Playgroud)
请注意,您需要n在SELECT子句中包含此内容才能生效.