Jeg tror, at dette kan testes ved hjælp af sleep()-funktionen,
tag for eksempel et kig på denne 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;
Udførelsestiderne for begge forespørgsler er omkring 3000 ms ( 3 sekunder ).
Der er 3 poster i tabellen, og for hver post sover forespørgslen kun i 1 sekund,
så det betyder, at udtrykket evalueres kun én gang for hver post, ikke to gange.