Ich denke, das kann mit der Funktion sleep() getestet werden,
sehen Sie sich zum Beispiel diese Demo an: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;
Die Ausführungszeiten beider Abfragen betragen etwa 3000 ms ( 3 Sekunden ).
Es gibt 3 Datensätze in der Tabelle, und für jeden Datensatz ruht die Abfrage nur 1 Sekunde,
das bedeutet, dass der Ausdruck ausgewertet wird nur einmal für jeden Datensatz, nicht zweimal.