Jag tror att detta kan testas med sleep()-funktionen,
ta till exempel en titt på denna demo:http://sqlfiddle.com/#!2/0bc1b/1
Select * FROM t;
| X |
|---|
| 1 |
| 2 |
| 2 |
SELECT x+sleep(1)
FROM t
GROUP BY x+sleep(1);
SELECT x+sleep(1) As name
FROM t
GROUP BY name;
Exekveringstiderna för båda frågorna är cirka 3000 ms ( 3 sekunder ).
Det finns 3 poster i tabellen, och för varje post sover frågan endast i 1 sekund,
så det betyder att uttrycket utvärderas endast en gång för varje post, inte två gånger.